arraylist< >与arraylist< integer>

0ve6wy6x  于 2021-06-29  发布在  Java
关注(0)|答案(5)|浏览(442)

arraylist的以下两个声明有什么区别?

ArrayList<Integer> nunbers = new ArrayList<Integer>();

ArrayList<Integer> nunbers = new ArrayList<>();

他们中的一个比另一个更受欢迎吗?

mkshixfv

mkshixfv1#

它们将编译成完全相同的代码,因为Java7第二件事只是您可以使用的一个快捷方式,因为它100%清楚什么属于 <> 你可以让它空着

rsl1atfo

rsl1atfo2#

第二种方法减少了代码混乱,这在Java7中是新的。但你的密码应该是

List<Integer> nunbers = new ArrayList<>();

因为你可以对接口进行编码 List ,键入实现的param ArrayList 是推断出来的。

kpbwa7wx

kpbwa7wx3#

最后一个是可以与java版本7或更新版本一起使用的快捷方式。

8ljdwjyq

8ljdwjyq4#

如果java编译器的版本低于1.7,则第二个版本将无法编译。

6ojccjat

6ojccjat5#

第二个是推断出它的类型参数,这在Java7中是一个新事物。 <> 被称为“钻石”。
还要注意,类型推断本身在java中并不是新的,但是为被示例化的泛型类推断它的能力是新的。
JavaSE7之前版本的编译器能够推断泛型构造函数的实际类型参数,类似于泛型方法。但是,如果使用diamond(<>),JavaSE7和更高版本中的编译器可以推断被示例化的泛型类的实际类型参数。
我想说,第二种可能是首选的,只要您能够确保代码只需要在Java7上运行,因为它更清晰,并且只减少了冗余信息。

相关问题