我有一个基类存储最终从JNI设置的指针
class Struct {
private long ptr;
long c_ptr() { return ptr; }
}
class NativeInterface {
static native void somefunc(Struct st);
...
}
然后将传递给NativeInterface的特定Struct:somefunc,需要能够访问它的ptr
字段。我的问题是如何将SomeStruct
的超级传递给本机接口?应该是这样还是演员?
class SomeStruct extends Struct {
void somefunc() {
NativeInterface.somefunc(super);
}
}
答案 0 :(得分:0)
只需执行常规步骤:通过Struct类上的JNI内省获取字段ID,然后获取/设置其值,将SomeStruct实例作为对象参数。
答案 1 :(得分:0)
这里不需要演员或任何需要使用super
。只需传递this
,SomeStruct
继承自Struct
,就可以将其传递给任何接受Struct
的函数。
NativeInterface.somefunc(this);