1

我使用 JNI4NET 框架从 Java 调用 .Net 代码。JNI4NET 为 .Net 代码生成了代理类。其中一种方法接受 system.Object 作为输入参数。

我想发送字符串值作为该方法的输入。我为此编写了以下代码-

        String s = "test";
        Object b = s;
        system.Object object = (system.Object) b;

并将这个 obj 作为输入传递给代理方法。上述代码抛出运行时异常 java.lang.String cannot be cast to system.Object。任何帮助或指示都会很有用。

4

1 回答 1

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方法。

于 2015-01-19T08:43:47.607 回答