必须知道,我们可以使用双大括号初始化来初始化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”)));'显然。 –