java - 创建新的 Map.Entry - 似乎比它需要的更难
问题描述
我有这两种方法:
@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);
}
我怎样才能创建一个新的 Map.Entry,而不是传递 null?我试过:
this.done(e, Map.of(k,v));
但这会创建一个 Map 而不是 Map.Entry。
解决方案
使用 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));
}
推荐阅读
- wavesplatform - 关于@waves/waves-transactions 库
- css - less-loader 模块构建失败 ~ import
- c++ - int main() 和带符号的 main() 之间的区别
- visual-studio - Ankh SVN 更新到最新版本后未在 Visual Studio 中的解决方案中添加新文件
- python-3.x - 使用 bs4 从
- javascript - 使用Javascript从带有每行标题的表中获取元素
- php - 我对 laravel / HTML 中的单选按钮有疑问
- android - Android Kotlin:自动转到下一个音频。如何?
- xml - Magento 2 不会自动更新站点地图 XML,而是在 Admin 中设置
- facebook - 使用 Ionic (cordova) Facebook 插件时如何从 AWS Cognito 获取 accessToken?