必須知道,我們可以使用雙大括號初始化來初始化java中的一個集合。並做了一些搜索,發現它不建議使用它,因爲它的性能問題。雙大括號初始化 - 優點
private static final Set<String> VALID_CODES = new HashSet<String>() {{
add("XZ13s");
add("AB21/X");
add("YYLEX");
add("AR2D");
}};
只是想知道,是否有任何積極的方面或雙重優勢的初始化?
不,只有積極的一面是少代碼..但不可讀所有其他誰不知道雙括號初始化。 – Phani
儘管可以用Java編程的人可讀性更強,但在非靜態環境中,您將獲得對封閉「this」的引用。你也可以選擇固定的引用來調用mutators時使用的final字段。這對於大多數Java程序員來說並不明顯,並且可能導致模糊的內存問題。 //無論如何,你應該寫一些類似'private static final Set VALID_CODES = Collections.unmodifiableSet(new HashSet (Arrays。asList(「XZ13s」,「AB21/X」,「YYLEX」,「AR2D」)));'顯然。 –