加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

可以使用JNI引用Java代码中的C对象吗?

发布时间:2020-12-14 16:42:46 所属栏目:Java 来源:网络整理
导读:我没有看到任何地方(或者也许我很简单,没有看到它),但有没有办法使用JNI返回c / c对象,并在 java中使用该对象? 例如(很简单): class simpleClass{...private:int intVar;public:int getIntVar();void setIntVar(int someNum);...} 在我的java代码中,我该如
我没有看到任何地方(或者也许我很简单,没有看到它),但有没有办法使用JNI返回c / c对象,并在 java中使用该对象?

例如(很简单):

class simpleClass{
...
private:
int intVar;
public:
int getIntVar();
void setIntVar(int someNum);
...
}

在我的java代码中,我该如何去做:

...
simpleClass sc = new simpleClass();
sc.setIntVar(9);
System.out.println(sc.getIntVar());
...

我意识到这是一个非常简单的例子,但我只是在寻找概念 – 我记得在C中的类是非常大的,我希望避免创建一个TON的包装方法…

如果不可能的话,只是希望能节省几天的编码

解决方法

不,你不能. C和Java ABI是完全不同的 – 一个,c不定义一个.真的c有这么多的功能,无法映射到Java,所有这些只是不能工作. Java将如何处理c模板?指向原语?不是指针的对象?

现在你可以做什么,是使用SWIG为你生成正确的包装方法 – 这实际上可以工作,而不是比你所计划的更多的工作:)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读