Java将ArrayList转换为C#

时间:2017-12-01 06:44:54

标签: java c# java-native-interface

需要将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

如何解决?

3 个答案:

答案 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>();