【问题标题】:Refer to method in a constructor (java)在构造函数中引用方法(java)
【发布时间】:2015-03-14 17:01:34
【问题描述】:
class A {

    private List<B> list = new ArrayList<B>();
    private B example;

    public A(List<B> list) {
        this.list = list; 
        this.example = setExample();
    }

    private B setExample() {
        B object;
        //do something with the list
        return object;
    }

}

这样的事情可能吗?该对象有一个列表,但我希望该列表的特定元素也存储在该对象中。

【问题讨论】:

    标签: java methods constructor


    【解决方案1】:

    是的,只要该方法不可覆盖就可以了。不可在构造函数中调用可覆盖的方法。

    因此,如果这个类被设计为继承自,那么 setExample() 方法应该设为 final,如果它是公共的或受保护的,但它是私有的,所以这不是问题。

    【讨论】:

    • 谢谢!这为我省去了很多麻烦。
    【解决方案2】:

    是的,这可以正常工作,但您不需要使用空列表初始化变量 list,因为您在构造函数中将传递的列表分配给它,从而有效地再次丢弃新列表。

    【讨论】:

    • 你是对的,我不知道为什么我在这里添加了这个。谢谢。
    猜你喜欢
    • 1970-01-01
    • 2013-10-04
    • 2015-08-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-25
    相关资源
    最近更新 更多