2016-05-12 81 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的子类。