From: Panayotis K. <pan...@pa...> - 2011-05-20 07:10:45
|
On May 20, 2011, at 9:56 AM, Arno Puder wrote: > > hmm. Do you want to be able to call arbitrary *methods* or a certain > method on arbitrary *objects*? For the former you need reflected, for > the latter not. Actually, take a look at [DispatcherObject run] (in > NSObject.m) to get an idea how you can invoke a Java method from C code. certain method, arbitrary objects. I did, I actually found these two parts: java_lang_reflect_Method* method = (*(JAVA_OBJECT (*)(JAVA_OBJECT, JAVA_OBJECT, JAVA_OBJECT)) targetClass->tib->vtable[XMLVM_VTABLE_IDX_java_lang_Class_getMethod___java_lang_String_java_lang_Class_1ARRAY])(targetClass, methodName, paramTypes); and (*(JAVA_OBJECT (*)(JAVA_OBJECT, JAVA_OBJECT, JAVA_OBJECT)) method->tib->vtable[XMLVM_VTABLE_IDX_java_lang_reflect_Method_invoke___java_lang_Object_java_lang_Object_1ARRAY])(method, target, params); but I am a bit confused how to decode it. Moreover it seems that they use reflection - that's why I asked. >> And a last probably silly question: >> How do I convert an ObjC String to java_lang_String ? >> (and for completeness and back?) > > NSString* toNSString(JAVA_OBJECT o) > JAVA_OBJECT toJavaString(NSString* str) > > both defined in NSString.m > Oh , I missed that part - I was looking under java_lang_String :) |