java final 初始化_在Java中,可以从构造函数助手中初始化final字段吗?
我有一個最終的非靜態(tài)成員:
private final HashMap myMap;
我想使用構(gòu)造函數(shù)調(diào)用的方法對其進行初始化。 由于myMap是最終版本,因此我的“ helper”方法無法直接對其進行初始化。 我當然有選擇:
我可以直接在構(gòu)造函數(shù)中實現(xiàn)myMap初始化代碼。
MyConstructor (String someThingNecessary)
{
myMap = new HashMap();
myMap.put("blah","blahblah");
// etc...
// other initialization stuff unrelated to myMap
}
我可以讓我的助手方法構(gòu)建HashMap,將其返回給構(gòu)造函數(shù),然后讓構(gòu)造函數(shù)將對象分配給myMap。
MyConstructor (String someThingNecessary)
{
myMap = InitializeMyMap(someThingNecessary);
// other initialization stuff unrelated to myMap
}
private HashMap InitializeMyMap(String someThingNecessary)
{
HashMap initializedMap = new HashMap();
initializedMap.put("blah","blahblah");
// etc...
return initializedMap;
}
方法2很好,但是,我想知道是否有某種方法可以允許helper方法直接操作myMap。 也許表明它只能由構(gòu)造函數(shù)調(diào)用的修飾符?
MyConstructor (String someThingNecessary)
{
InitializeMyMap(someThingNecessary);
// other initialization stuff unrelated to myMap
}
// helper doesn't work since it can't modify a final member
private void InitializeMyMap(String someThingNecessary)
{
myMap = new HashMap();
myMap.put("blah","blahblah");
// etc...
}
總結(jié)
以上是生活随笔為你收集整理的java final 初始化_在Java中,可以从构造函数助手中初始化final字段吗?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java求阶乘的程序_按要求编写Java
- 下一篇: java objectid_需要一种解决