大家好,
我想知道下面两种初始化方法之间是否有任何区别。如果是这样,哪种方法被认为是最佳做法?提前谢谢。
Class Foo {
List myList = new ArrayList();
}
Class Foo {
List myList;
public Foo() {
myList = new ArrayList();
}
}
答案 0 :(得分:3)
答案 1 :(得分:2)
如果您知道要将类成员初始化为什么,最好将其作为第一个示例。在这种情况下,您将创建一个新的ArrayList。您还应该将其设为private final
,除非您打算通过类方法更改它。
如果构造函数接受应用于成员的参数,我只在构造函数中初始化东西 - 否则我在它之外做。
答案 2 :(得分:1)
我认为这是一个风格问题......我尽可能选择前者,但必要时更喜欢后者。
答案 3 :(得分:1)
我个人更喜欢第二种(在构造函数中创建新对象)。但它们之间没有区别。
唯一的区别可能是如果你有两个方法创建的两个对象,首先创建由第一个方法创建的对象,然后在它之后创建在构造函数中创建的对象。