我无法理解以下代码段:
public class Person {
private List<Person> people = new ArrayList<Person>();
public List<Person> getPeople() {
return new ArrayList<Person>();
}
}
编辑:对不起,也许我的条款不正确。我想我已经看到了这样的代码,其中返回了一个新集合,并且该类有一个集合实例变量。所以我想知道其含义是什么。
答案 0 :(得分:7)
这不是一个匿名类,它只是一个空列表。
我意识到你可能正在谈论返回一个尚未分配给命名变量的新对象,因此在这个意义上是匿名的。您给出的示例看起来可以改进 - 似乎getPeople()
应该返回people
变量,因为它已经初始化为空List
并使用它可以节省开销在每次调用getPeople()
时创建一个新的空列表。
既然您已经编辑过您的问题,我认为以上内容可能就是您的要求。
答案 1 :(得分:6)
这可能代表coding to the interface的一个例子。在示例中,ArrayList
是一个实现细节。返回List
表示客户端应该只依赖返回对象的List
方法。
答案 2 :(得分:5)
这将返回一个匿名列表:
public class Person {
public List<Person> getPeople() {
return new ArrayList<Person>(){};
}
}
确切地说,它是一个匿名的ArrayList。
匿名名单将是:
public class Person {
public List<Person> getPeople() {
return new List<Person>(){
//implementing all methods required for a List.
};
}
}