Java 作为参数传递给ArrayList时,此处不允许使用数组初始值设定项
我有一些Java 作为参数传递给ArrayList时,此处不允许使用数组初始值设定项,java,Java,我有一些模型类,我正试图用它们声明一个列表,但我得到的数组初始值设定项在这里是不允许的。什么是简单的工作 ... public class M1 extends Model {} public class M2 extends Model {} ... List<Model> mObj = new ArrayList<Model>({M1, M2}) //expression expected ... 。。。 公共类M1扩展了模型{} 公共类M2扩展了模型{} ...
模型
类,我正试图用它们声明一个列表,但我得到的数组初始值设定项在这里是不允许的
。什么是简单的工作
...
public class M1 extends Model {}
public class M2 extends Model {}
...
List<Model> mObj = new ArrayList<Model>({M1, M2}) //expression expected
...
。。。
公共类M1扩展了模型{}
公共类M2扩展了模型{}
...
List mObj=new ArrayList({M1,M2})//应为表达式
...
您可以使用它返回列表
,然后您可以将其传递给的构造函数注意如果您直接将列表
通过数组返回。asList
分配给列表
,则调用add()
等方法将抛出不支持操作异常
,因为Arrays.asList返回的抽象列表
你应该改变
List<Model> mObj = new ArrayList<Model>({M1, M2}) //expression expected
List mObj=new ArrayList({M1,M2})//应为表达式
到
List mObj=newarraylist(Arrays.asList(M1,M2));
由于类
ArrayList
的构造函数可以在Java8中获取Collection,因此您可以使用Streams API:
List mObj=Stream.of(“m1”、“m2”、“m3”).collect(collector.toList());
Java 8之前的版本只需使用:
List<Model> mObj = new ArrayList<>(Arrays.asList(m1, m2, m3));
List mObj=newarraylist(Arrays.asList(m1,m2,m3));
有关这方面的信息,请参见:
@Bala,List mObj=新的数组列表(Arrays.asList(M1,M2));应该有用。您收到任何问题吗?我得到了预期的表达式
List<String> mObj = Stream.of("m1","m2","m3").collect(Collectors.toList());
List<Model> mObj = new ArrayList<>(Arrays.asList(m1, m2, m3));