Java 菱形算子阵列列表
两者的区别是什么Java 菱形算子阵列列表,java,arraylist,Java,Arraylist,两者的区别是什么 ArrayList<Integer> list = new ArrayList<>(); ArrayList list=new ArrayList(); 及 ArrayList list=new ArrayList(); 创建新的ArrayList时是否需要菱形运算符?Java的一个相当高级的主题是泛型,这是对所有符号的解释 本质上,你应该一直写作 ArrayList<Integer> list = new ArrayList<&
ArrayList<Integer> list = new ArrayList<>();
ArrayList list=new ArrayList();
及
ArrayList list=new ArrayList();
创建新的ArrayList时是否需要菱形运算符?Java的一个相当高级的主题是泛型,这是对所有符号的解释 本质上,你应该一直写作
ArrayList<Integer> list = new ArrayList<>();
ArrayList list=new ArrayList();
因为它是
ArrayList<Integer> list = new ArrayList<Integer>();
ArrayList list=new ArrayList();
您需要两个类型参数(位)来匹配,否则编译器将给您一个警告
写作:
ArrayList<Integer> list = new ArrayList();
ArrayList list=new ArrayList();
创建可以保存任何类型的ArrayList,当您尝试将其转换为ArrayList
时,编译器将抛出警告
编辑:
下面是关于泛型的用途和工作方式的深入指南。我不确定你是否有能力完全理解它们,但值得一试
首先是
ArrayList
的参数化泛型对象,由参数化泛型引用引用
第二个是ArrayList
的非参数化非泛型对象,由参数化泛型引用引用
否,尽管创建
ArrayList
时不需要菱形运算符,但强烈建议以后避免ClassCastException
或其他一些运行时异常。第二个生成编译警告
Diamond iperator是在Java1.7中引入的。从Java1.5开始,您必须编写
ArrayList<Integer> list = new ArrayList<Integer>();
甚至
Collection<Integer> list = new ArrayList<>();
Collection list=new ArrayList();
甚至经常
Iterable<Integer> list = new ArrayList<>();
Iterable list=new ArrayList();
答案非常翔实,但请您解释一下或提供链接阅读此语句:请避免在作业和方法定义的左侧使用具体类。下面是更好的:…
请解释原因,谢谢
Collection<Integer> list = new ArrayList<>();
Iterable<Integer> list = new ArrayList<>();