2 votes

Contrôle de flux, mise en œuvre remplacer la méthode Liste

Directement de [http://docs.oracle.com/javase/tutorial/collections/interfaces/list.html]

public static <E> void replace(List<E> list, E val, E newVal) {
    for (ListIterator<E> it = list.listIterator(); it.hasNext(); )
        if (val == null ? it.next() == null : val.equals(it.next()))
            it.set(newVal); }

La seule astuce dans cet exemple est le test d'égalité entre val et it.next. Vous devez mettre dans un cas spécial une valeur val de null pour éviter une NullPointerException.

Je me demande pourquoi il faut mettre en cascade une valeur nulle pour éviter une NullPointerException. Je peux comprendre que nous devons sécuriser le code pour éviter une NullPointerException mais cette ligne de code

if (val == null ? it.next() == null : val.equals(it.next()))

n'est pas lié à l'itération de la collection, mais le paramètre val est spécifié uniquement dans la méthode des paramètres.

Merci d'avance pour toute clarification concernant ce qui précède.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X