Aujourd'hui, je lisais du code Hibernate et je rencontre quelque chose d'intéressant. Il y a une classe appelée CollectionHelper qui définit la varibale constante suivante:La meilleure façon d'assigner une instance immutable à une collection en Java
public final class CollectionHelper {
public static final List EMPTY_LIST = Collections.unmodifiableList(new ArrayList(0) ;
public static final Collection EMPTY_COLLECTION = Collections.unmodifiableCollection(new ArrayList(0));
public static final Map EMPTY_MAP = Collections.unmodifiableMap(new HashMap(0));
Ils ont utilisé ces constantes pour initialiser les collections avec des instances immuables. Pourquoi n'ont-ils pas simplement utilisé Collections.EMPTY_LIST pour initialiser des listes? Y a-t-il un avantage à utiliser la méthode suivante?
@Ali: Je ne sais pas, mais tout le monde ne connaît pas tous les détails des API Java. L'autre jour, j'ai répondu à quelqu'un et j'ai utilisé la méthode numberOfLeadingZeros (..) * de * Integer * et un programmeur averti a commenté qu'il ne connaissait pas cette méthode. Je ne viens pas à SO ou à la publication quotidienne de WTF à chaque fois que je rencontre un morceau de code qui réinvente une partie d'une API Java obscure et appelle ça "intéressant". * Ce n'est pas intéressant, pas grand chose à voir ici d'ailleurs couper les cheveux, se déplacer. – SyntaxT3rr0r