【发布时间】:2016-11-04 08:20:20
【问题描述】:
JavaCPP中的@MemberGetter和@ValueGetter注解有什么区别?
它们的用例是什么?
我有两个常量的 C 头文件
static const int TRANSPOSE = 0;
static const int NO_TRANSPOSE = 1;
在 Java 端获取它们的值的首选方法是什么?
更新:
我已经阅读了 JavaCPP Generator 源代码code,做了一些实验,最终以两种方式都这样做了,并且都可以正常工作。这是 java 示例(请参阅我们的 github project 了解更多信息)。
private static native @MemberGetter @Const int TRANSPOSE();
private static native @ValueGetter @Const int NO_TRANSPOSE();
但我仍然不知道有什么区别。两个注释都生成了相同的 C++ 代码。
JNIEXPORT jint JNICALL Java_com_rtbhouse_model_natives_NeuralNetworkNativeOps_TRANSPOSE(JNIEnv* env, jclass cls) {
jint rarg = 0;
const int rvalue = (const int)TRANSPOSE;
rarg = (jint)rvalue;
return rarg;
}
JNIEXPORT jint JNICALL Java_com_rtbhouse_model_natives_NeuralNetworkNativeOps_NO_1TRANSPOSE(JNIEnv* env, jclass cls) {
jint rarg = 0;
const int rvalue = (const int)NO_TRANSPOSE;
rarg = (jint)rvalue;
return rarg;
}
【问题讨论】:
标签: java c java-native-interface javacpp