在JNI

2012-03-02 47 views
0
訪問超類

我有以下設置有一個基類存儲最終從JNI在JNI

設定指針
class Struct { 
    private long ptr; 
    long c_ptr() { return ptr; } 
} 

class NativeInterface { 
    static native void somefunc(Struct st); 
    ... 
} 

然後特​​定的結構將被傳遞到NativeInterface:somefunc需要能夠訪問它的ptr字段。我的問題是如何將超級SomeStruct傳遞給本地接口?它應該是這樣或者與演員?

class SomeStruct extends Struct { 
    void somefunc() { 
     NativeInterface.somefunc(super); 
    } 
} 

回答

0

只是做通常的步驟:獲得通過JNI內省場ID的結構類,然後獲取/設置其值爲提供SomeStruct實例作爲對象參數。

0

這裏不需要演員或任何需要使用super。只需通過this,因爲SomeStruct繼承自Struct,它可以傳遞給接受Struct的任何函數。

NativeInterface.somefunc(this);