Results 1 to 2 of 2
- 04-13-2010, 04:38 PM #1
Member
- Join Date
- Jan 2010
- Posts
- 5
- Rep Power
- 0
JNI accessing non primitive data type
Hello
I have a JNI method to access java method which returns an Integer object. I do not want to return the primitive int type because this code will be modified to handle Generic objects. The following is what I have. I am not able to get the value of the Integer that I pass. The output at C++ side is something like
How can I get the actual value of Integer object that I pass at C++ end?Java Code:value = 0x4016f3d0
Please help.
Thanks,
-H
GenericPeer.cpp
Java Code:JNIEXPORT void JNICALL Java_GenericPeer_print (JNIEnv *jenv, jclass jcls, jobject data){ jclass peerCls = jenv->GetObjectClass(data); jmethodID mGetValue = jenv->GetMethodID(peerCls, "getValue","()Ljava/lang/Integer;"); if(mGetValue == NULL){ return (-1); } jobject value = jenv->CallObjectMethod(data, mGetValue); cout<<"value = "<<value<<endl; }
GenericPeer.java
Data.javaJava Code:public class GenericPeer { public static native void print(Data d); static { System.load("/home/usr/workspace/GenericJni/src/libGenericJni.so"); } }
Java Code:public class Data { private Integer value; pubilc Data(Integer v){ this.value = v; } public Integer getValue() { return value; } public void setValue(Integer value) { this.value = value; } }
Test.java (Main class)
Java Code:public class Test { public static void main(String[] args){ Integer i = new Integer(1); Data d = new Data(i); GenericPeer.print(d); } }
- 04-14-2010, 05:43 AM #2
Senior Member
- Join Date
- Jan 2009
- Posts
- 671
- Rep Power
- 5
The Integer class is not native. It's byte code. There is no acceptable way to access it as a c++ class except to write a c++ wrapper that makes jni calls back to the java world. The only other option is to write a byte code interpreter (or buy one, or partner with someone who has one).
If you can explain your motivation for wanting the equivalent of *value, we might be able to help you come up with a different way of satisfying that objective.
Similar Threads
-
primitive Data types
By Manfizy in forum New To JavaReplies: 2Last Post: 07-07-2009, 08:29 PM -
Primitive data types of Java
By Java Tip in forum Java TipReplies: 0Last Post: 03-28-2008, 07:29 PM -
Accessing Data from a .txt file
By Oasis13 in forum New To JavaReplies: 5Last Post: 02-01-2008, 12:16 AM -
Uisng primitive type values as keys for Hashtable
By ravian in forum New To JavaReplies: 3Last Post: 11-21-2007, 10:13 AM


LinkBack URL
About LinkBacks
Reply With Quote
Bookmarks