java - 将 java 1.8 转换为 1.6
问题描述
如何将其转换为 java 1.6?方法 .stream() 在 java 1.6 中无法使用。
final Optional<Entry<String, String>> mapping = cfg.getTypeMapping()
.entrySet()
.stream()
.filter(e -> e.getKey().startsWith(jsonType + "|"))
.findFirst();
解决方案
让我们快速浏览一下:
mapping = cfg.getTypeMapping()
.entrySet()
.stream()
.filter(e -> e.getKey().startsWith(jsonType + "|"))
.findFirst();
上面的代码可能会获取某种映射,获取它的条目,然后迭代它们,以停止在startsWith(jsonType + "|")
.
仅此而已,并且可以很容易地用老式循环代码重写。
但这里的实际挑战是::final Optional<Entry<String, String>>
类Optional是在 Java 1.8 中添加到 Java 中的。
它没有等价物。所以你的整个代码根本无法为 Java 1.6 重写
您可以做的最接近的事情:编写该循环代码,如果循环找到某些内容,则返回该结果,否则返回 null。或者,您可以这样做:
List<Entry<String, String>> firstMapping = Collections.emptyList();
for (Entry<String, String> entries = cfg.getTypeMapping().entrySet()) {
if (entry.getKey().startsWith(jsonType + "|")) {
firstMapping = Collections.singletonList(entry);
break;
}
}
return firstMapping;
或者,鉴于 OP 考虑使用com.google.common.base.Optional
,您可以这样做:
for (Entry<String, String> entries = cfg.getTypeMapping().entrySet()) {
if (entry.getKey().startsWith(jsonType + "|")) {
return Optional.of(entry);
}
}
return Optional.absent();
反而。
当然,永远记住:Java 6 是。人们应该避免对其进行积极的开发,尤其是当必须依赖其他人来完成实际的反向移植工作时。
(免责声明:我的代码示例旨在作为详细的伪代码灵感,我没有通过编译器运行它,它可能包含拼写错误等)
推荐阅读
- css - 将 css 变量存储在 sass 变量中的函数返回未定义的操作
- sql - Postgresql行在更新后被隐藏,无法选择它
- ios - SwiftUI - NavigationView 的带有圆角和阴影的导航栏
- c++ - 链表分段错误 C++
- go - golang 发送一个 lambda 捕获组
- python - 如何重塑随机熊猫列以便广播?
- mongodb - MongoDB对不同集合的并发查询很慢
- python - 神经网络的梯度只有 1d
- django - Django REST 验证器。多个用户可以拥有相同值的记录,但该记录对于每个用户都是唯一的,如何做到这一点?
- getstream-io - getstream 聊天:为每个服务器端请求使用新的 JWT 令牌