gpt4 book ai didi

java - 我应该将 ArrayList 声明/初始化为列表、ArrayList 还是 的 ArrayList

转载 作者:搜寻专家 更新时间:2023-10-30 20:59:49 25 4
gpt4 key购买 nike

这样声明一个集合有什么区别

public class CatHerder{
private List cats;
public CatHerder(){
this.cats = new ArrayList<Cat>();
}
}
//or
public class CatHerder{
private ArrayList cats;
public CatHerder(){
this.cats = new ArrayList();
}
}
//or
public class CatHerder{
private ArrayList<Cat> cats;
public CatHerder(){
this.cats = new ArrayList<Cat>();
}
}

最佳答案

您应该将其声明为 List<Cat> , 并将其初始化为 ArrayList<Cat> .

List 是一个接口(interface), ArrayList 是一个实现类。针对接口(interface)而不是实现进行编码几乎总是更可取。这样,如果您以后需要更改实现,就不会破坏针对接口(interface)进行编码的消费者。

根据您实际使用列表的方式,您甚至可以使用不太具体的 java.util.Collection (List 扩展的接口(interface))。

至于List<Cat> (你可以把它读作“猫的列表”)vs List : 那是 Java 的 generics ,这确保编译时类型安全。简而言之,它让编译器确保 List只包含 Cat对象。


public class CatHerder{
private final List<Cat> cats;
public CatHerder(){
this.cats = new ArrayList<Cat>();
}
}

关于java - 我应该将 ArrayList 声明/初始化为列表、ArrayList 还是 <Cat> 的 ArrayList,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5488212/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com