![]() |
1
1
我甚至不会考虑这里的效率,因为它只会对方法调用产生微小的影响。但为什么你认为它不那么可读?这是Java语言的一个众所周知的特性。
第一种方法的好处是,您必须编写更少的代码。在第二种方法中,人为错误的可能性很小。通常,当您希望在每个构造函数中完成初始化时,可以使用实例初始化器块。这就避免了在所有构造函数中显式地编写相同的代码。对于另一种方法,您必须记住调用
但是如果您希望某些初始化成为某些构造函数的一部分,那么第二种方法可能会有用。但这是非常罕见的IMO。 |
![]() |
2
0
简而言之,第一种情况下的init代码将在构造函数之前调用,在第二种情况下调用。 看看这个 question . 一般规则是避免使用和使用这样的结构 static-factory-methods 相反 如果调用this()而不是super(),顺序可能很重要: 考虑代码:
} 它打印:
|
![]() |
Tom Buck · c#程序在整数列表上冻结 6 年前 |
![]() |
Ran Lavi · 在c中初始化结构的指针++ 6 年前 |
![]() |
Js_zero · 在c++中实例化对象有几种方法,它们之间有什么区别 6 年前 |
|
jfernal · 节点。js在加载其他函数之前等待初始化变量 6 年前 |
|
Victor · 在javafx中运行时更改标签文本 6 年前 |
![]() |
blubb · 在Kotlin中是否有更惯用的方法来初始化此映射? 6 年前 |
![]() |
Bing Bang · 初始化包含字节数组的结构数组 7 年前 |