我使用JNI4NET框架从Java调用.Net代码。 JNI4NET为.Net代码生成了代理类。其中一个方法接受system.Object作为输入参数。
我想将String值作为该方法的输入发送。我为此写了下面的代码 -
String s = "test";
Object b = s;
system.Object object = (system.Object) b;
将此obj作为代理方法的输入传递。以上代码抛出运行时异常java.lang.String无法强制转换为system.Object。任何帮助或指针都会有用。
答案 0 :(得分:2)
java.lang.String
可以投放到java.lang.Object
(虽然没有理由将其投射 - 您只需将其分配到Object
引用,就像在Object b = s;
中一样) ,而不是system.Object
。
我做了一些搜索。看起来这可能会有所帮助:
String s = "test";
system.String b = new system.String(s);
system.Object object = b;
由于system.String是system.Object的子类,因此您可以将其传递给test
方法。