gpt4 book ai didi

JavaCPP ValueGetter 与 MemberGetter

转载 作者:太空宇宙 更新时间:2023-11-03 23:43:09 25 4
gpt4 key购买 nike

@MemberGetter 之间有什么区别?和 @ValueGetter JavaCPP 中的注释?

它们的用例是什么?

我有两个常量的 C 头文件

static const int TRANSPOSE = 0;
static const int NO_TRANSPOSE = 1;

在 Java 端获取它们的值的首选方法是什么?


更新:

我已阅读 JavaCPP 生成器源代码 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;
}

最佳答案

对于全局变量和宏,没有太大区别。在类的情况下,一对 native get()put() 方法默认为值 getter 和 setter,映射到 [] 指针的运算符,通常用于访问数组的元素。其他 getter 和 setter 对用于访问字段,如 native int n(); native void n(int n)默认是成员变量int n的成员getter和setter。 @ValueGetter@ValueSetter@MemberGetter@MemberSetter@Function 注释可用于更改默认行为并为方法使用其他名称。

关于JavaCPP ValueGetter 与 MemberGetter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40418052/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com