Java Jni and C++
Java Jni and C++
我正在学习JNI如何从Java程序调用C++对象方法。我正在使用Android NDK/SDK编写应用程序。我是 JNI 的初学者,我想知道是否支持多态性。也就是说,假设我有一个简单的C++类:
class HeyBoy
{
public:
virtual int getValue()
{
return 10;
}
};
class HeyBoyDerived1 : public HeyBoy
{
public:
int getValue()
{
return 20;
}
}
class HeyBoyDerived2 : public HeyBoy
{
public:
int getValue()
{
return 30;
}
}
在运行时,我希望用户选择要使用的实现(1 或 2),只需按下应用程序界面上的按钮即可。应创建正确的C++对象。然后,我会放置一个带有"获取值"标签的按钮。按下按钮时,应调用当前所选实现的 getValue()
方法。之后,结果将打印在手机屏幕上。我真的很想看一些代码示例!谢谢。
简短的回答是否定的。 JNI是一个C接口,它不知道C++,类,继承或多态性。
更长的答案是:是的,C 函数可用于调用所需的构造函数并调用虚拟方法。
相关文章:
- C++核心准则 C35 对于接口类"A base class destructor should be either public and virtual, or protected and nonv
- 为什么C++逐位AND运算符在不同大小的操作数中表现为这样
- 为什么 Clang 不允许"and"作为函数名称?
- 位阵列上的快速AND运算
- 是否可以在 C++03 中定义'move-and-swap idiom'等效项
- BoostPython and CMake
- OpenSSL BIO and SSL_read
- Gurobi GRBModel and GRBmodel in C++
- std::visit and std::variant usage
- SHBrowseForFolder with BIF_BROWSEFORCOMPUTER and SHGetPathFr
- Directx12 and keystrokes
- different between int **arr =new int [ n]; and int a[i][j]?
- C++ getenv and setenv
- Inference pytorch C++ with alexnet and cv::imread image
- Visual Studio 2019 C++ and std::filesystem
- 保证逻辑 AND 表达式中的函数调用
- python ctypes and C++ pointers
- C++ const char with .begin() and .end()
- Threads with Classes and std::packaged_task
- libgphoto2 and Visual Studio 2019