我在C++中有一个叫做kitten的类

class kitten
{
public:
 void ChangeColor(int newColor);
 int GetColor();
}

现在使用JNI,我想让我的Java程序能够使用此类。

我知道如何使用JNI使我的Java程序能够调用C样式函数,但这是一个成员函数。

我想到了类似添加C样式函数的方法kitten* CreateNewKitten();,只有一行:return new kitten();
然后以某种方式将此本地kitten对象返回给JAVA,然后JAVA代码将调用C样式函数:
ChangeColor(kitten* myKitten, int newColor)
{
   myKitten->changeColor(color)
}

为了明确起见,我的问题是:
是否可以将我的本机小猫恢复为Java代码?怎么样 ?这是正确的方法吗?

最佳答案

通用的问题是如何将指针从C++传递到Java并将其接收回来,this指针没有什么特别的。最好的文章之一是Roman Kennke的old post,但可以在SO上找到the short answer:

10-08 13:15