创建新的Map.Entry-似乎比需要的难

时间:2019-02-09 03:14:48

标签: java hashmap java-11

我有以下两种方法:

 @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);
  }

代替传递null,如何创建新的Map.Entry?我尝试过:

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

但是会创建一个Map而不是Map.Entry。

1 个答案:

答案 0 :(得分:7)

在Java 9+中,您可以将Map.entry用作:

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));
}