需要将Java ArrayList强制转换为C#ArrayList。
它不起作用。
//code in C#
public void DoSomething(Java.Lang.Object obj){
Java.Util.ArrayList list = (Java.Util.ArrayList) obj;
}
例外:
未处理的例外:
System.InvalidCastException:指定的强制转换无效。
当我打印obj.Class
时,它会返回class java.util.ArrayList
如何解决?
答案 0 :(得分:12)
我不编写C#代码,但如果这是我,我需要转换对象以使用不同的语言,我只需将Java对象序列化为JSON并将其反序列化为C#中的对象。
答案 1 :(得分:2)
我认为你需要这个令人惊叹的图书馆:Jeroen Frijters&amp ;; https://www.ikvm.net/贡献者。
IKVM.NET是Mono和Microsoft .NET Framework的Java实现。它包括以下组件:
用.NET实现的Java虚拟机 Java类库的.NET实现
支持Java和.NET互操作性的工具
这是一个如此庞大的主题,你将不得不做一些教程,例如Convert a Java Application to .NET。祝你好运!
答案 2 :(得分:0)
在 Xamarin 中已经准备好了,只需添加:
using Android.Gms.Extensions;
然后:
var list = listAsObject.JavaCast<ArrayList>();