![]() |
1
13
方法2是您的最佳选择。问题是,如果您在私有方法中有一个赋值,那么除了调用它的构造函数外,类中没有任何其他代码可以阻止它,这将导致对最终字段进行第二次赋值时出现问题。 Java没有构造一个只能在构造过程中调用的单独方法。 为了完整性,我们可以选择第三个选项,在初始化时分配映射,然后让helper方法填充它:
然后:
如果你真的想让人困惑,你可以使用初始值设定项而不是构造函数,但是你不应该这样做,所以除非你真的需要知道,我不会在上面展开。 |
![]() |
2
13
如何实现一个初始化散列映射的私有构造函数,然后让主构造函数调用该私有构造函数? 例如——
您可以根据需要修改私有helper构造函数的签名(例如,提供参数数据或使签名与任何公共构造函数不同)。 |
![]() |
3
1
选项2是最可恢复的选项,因为您可以在所有构造函数之间共享它。这里我们需要的是C的集合初始值设定项。:) (btw:3不会编译) |
![]() |
Tom Buck · c#程序在整数列表上冻结 7 年前 |
![]() |
Ran Lavi · 在c中初始化结构的指针++ 7 年前 |
![]() |
Js_zero · 在c++中实例化对象有几种方法,它们之间有什么区别 7 年前 |
|
jfernal · 节点。js在加载其他函数之前等待初始化变量 7 年前 |
|
Victor · 在javafx中运行时更改标签文本 7 年前 |
![]() |
blubb · 在Kotlin中是否有更惯用的方法来初始化此映射? 7 年前 |
![]() |
Bing Bang · 初始化包含字节数组的结构数组 7 年前 |