2 votes

Créer un nouveau Map.Entry - semble plus difficile que nécessaire

J'ai ces deux méthodes :

 @Override
  public void done(E e, Map.Entry<String, T> m) {

  }

  @Override
  public void done(E e, String k, T v) {
     this.done(e, null);
  }

au lieu de passer null, comment puis-je créer un nouveau Map.Entry ? J'ai essayé :

this.done(e, Map.of(k,v));

mais cela crée une Map et non une Map.Entry.

6voto

nullpointer Points 1135

Avec Java 9+, vous pouvez utiliser Map.entry comme :

static <E, T> void done(E e, Map.Entry<String, T> m) {
     // do something
}

// using immutable entry
static <E, T> void done(E e, String k, T v) {
    done(e, Map.entry(k, v));
}

// using mutable entry 
static <E, T> void done(E e, String k, T v) {
    done(e, new AbstractMap.SimpleEntry<>(k, v));
}

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