2016-05-12 44 views
0

獲取子Rectangle2D.Double成員之後通過JNI

import java.awt.geom.Rectangle2D; 

class SomeJavaClass 
{ 
    public SomeJavaClass() 
    { 
     m_rect = new Rectangle2D.Double(); 
    } 
    Rectangle2D.Double m_rect; 
} 

類和下面的C++假設代碼

jclass someJavaCls = env->FindClass("my/package/SomeJavaClass"); 
jfieldID rectID = env->GetFieldID(someJavaCls, "m_rect", "Ljava/awt/geom/Rectangle2D;"); 

的問題是,我不知道如何訪問fieldID爲m_rect。通過以上GetFieldID呼叫我得到

Exception in thread "Thread-2" java.lang.NoSuchFieldError: m_rect 

而且如果我改變的GetFieldID的簽名"Ljava/awt/geom/Rectangle2D/Double;"我得到相同的異常。這是如何完成的?

回答

0

解決方案似乎是「Ljava/awt/geom/Rectangle2D $ Double;」因爲DoubleRectangle2D的子類。