C# 将C中的java.util.List与IKVM一起使用

C# 将C中的java.util.List与IKVM一起使用,c#,ikvm,C#,Ikvm,我正在尝试使用C客户机调用java应用程序。发送的对象的类型为java.util.List。我已将所需的IKVM程序集添加到我的C项目中。我只是不确定应该如何实例化List对象。因为它只是在接口上,所以我不能创建它的新实例 java.util.List myList = new java.util.List(); 有人能帮我使用这个吗?提前感谢。在java中有迭代器 示例用法: java.util.List matches = new java.util.ArrayList(

我正在尝试使用C客户机调用java应用程序。发送的对象的类型为java.util.List。我已将所需的IKVM程序集添加到我的C项目中。我只是不确定应该如何实例化List对象。因为它只是在接口上,所以我不能创建它的新实例

 java.util.List myList = new java.util.List();
有人能帮我使用这个吗?提前感谢。

在java中有迭代器

示例用法:

        java.util.List matches = new java.util.ArrayList();
        //stuff to add elements to list
        Iterator it = matches.iterator();
        while (it.hasNext())
        {
            RuleMatch m = (RuleMatch)it.next();
            Console.WriteLine("Potential error:" + m.getMessage());
        }
java中有迭代器

示例用法:

        java.util.List matches = new java.util.ArrayList();
        //stuff to add elements to list
        Iterator it = matches.iterator();
        while (it.hasNext())
        {
            RuleMatch m = (RuleMatch)it.next();
            Console.WriteLine("Potential error:" + m.getMessage());
        }
正如我们所知,java.util.List类型是一个接口,而不是类类型,因此我们无法实例化。您需要使用any类类型,它是java.util.List的一个实现

或者更好地使用类型参数:

java.util.List<Integer> myList = new java.util.ArrayList<>();
正如我们所知,java.util.List类型是一个接口,而不是类类型,因此我们无法实例化。您需要使用any类类型,它是java.util.List的一个实现

或者更好地使用类型参数:

java.util.List<Integer> myList = new java.util.ArrayList<>();

试试java.util.List myList=new java.util.ArrayList;成功了。非常感谢您的帮助。@AVD您能否将您的评论作为答案发布,以便被接受?请尝试java.util.List myList=new java.util.ArrayList;成功了。非常感谢您的帮助。@AVD能否请您将您的评论作为答案发布,以使其被接受?您不能实例化java.util.List,因为它是一个接口。您不能实例化java.util.List,因为它是一个接口。由于类型擦除,在撰写本文时IKVM不支持java泛型。使用泛型类ArrayList确实有效,但在撰写本文时,由于类型擦除,IKVM不支持Java泛型。不过,使用泛型类ArrayList确实有效。