0

为什么 LifeCycle 的属性定义不够,为什么我的构造函数还需要定义为 ArrayList()?即便如此,为什么我的 ArrayList 不继承<LifeCycle>属性定义的限制呢?我不喜欢在两个地方都设置它,看起来很多余。

class Search {
    private Collection<LifeCycle> lifeCycleCollection;

    public Search() {
        this.lifeCycleCollection = new ArrayList<LifeCycle>();
    }
...
4

2 回答 2

4

Collection 是一个接口,当您创建实例时,您实际上是在指定实现。

至于您关于泛型的问题,与 Java 7 一样,您也可以编写

lifeCycleCollection = new ArrayList<>();
于 2012-04-12T18:27:00.543 回答
2

Alessio 的回答是正确的。您还可以通过移动构造函数中的内容将代码收紧一行。

class Search {
    private Collection<LifeCycle> lifeCycleCollection = new ArrayList<>();

    public Search() {
    }
于 2012-04-12T18:44:09.850 回答