作者:手机用户2502923261 | 来源:互联网 | 2022-11-18 11:15
我有这两种方法:
@Override
public void done(E e, Map.Entry 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> Naman..:
使用Java 9+,您可以使用Map.entry
:
static void done(E e, Map.Entry m) {
// do something
}
// using immutable entry
static void done(E e, String k, T v) {
done(e, Map.entry(k, v));
}
// using mutable entry
static void done(E e, String k, T v) {
done(e, new AbstractMap.SimpleEntry<>(k, v));
}
不错(+1).应该注意的是,`Map.entry(k,v)`将返回一个不可变的条目.如果需要更改,我想我们仍然需要使用旧的`AbstractMap.SimpleEntry`.