- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个类型的树状层次结构,这些类型知道他们的 child ,但不知道他们的 parent 。现在我正在创建一个外部注册表,它从外部提供相反的路径:
public interface Registry<X>{
Optional<X> parent(X node);
}
现在我想在该接口(interface)中实现一个方法,它从任何给定节点获取此层次结构的根注释(根节点可以是传入的节点或任何祖先节点)。
我做到了这一点:
default X root(X node) {
X current = node;
for (Optional<X> opt = Optional.of(current);
opt.isPresent();
opt = opt.flatMap(this::parent)) {
if (opt.isPresent()) {
current = opt.get();
}
}
return current;
}
虽然这可行,但感觉有点笨拙。 Optional.isPresent()
被调用了两次,变量current
被重新赋值。有什么办法可以让它更优雅、更实用吗?
最佳答案
我在想
default X root(X node) {
X root = node;
for (Optional<X> parentOpt = parent(root); parentOpt.isPresent(); root = parentOpt.get())
;
return root;
}
我不喜欢处理null
参数。所以我们遵从 parent
的实现,您可能会将其记录为在 null
参数上返回一个空的 Optional
。
如果参数是null
,我们也将返回null
。
如果参数不为null
,我们将其值保存在root
中并开始循环。我们得到它的潜在 parent 。如果存在,我们更新 root
,然后重试。否则,我们会中断,并返回 root
中最后保存的值,因为那是我们所能得到的。
我认为,那种笨拙的感觉来自node
的初始Optional
。我认为您不需要那个。
关于java - 使用 Optional 查找层次结构的根,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40229432/
我正在尝试将多个水平链接的 Button 和 TextView 垂直链接为 View 集,但仍保持平面 View 层次结构。这是我的初始布局和代码:
到目前为止,我已经在Google BigQuery上训练了几种模型,目前我需要查看模型的外观(即架构,损失函数等)。 有没有办法获取这些信息? 最佳答案 仔细阅读文档后,我可以说该功能尚不存在。我什至
本文实例讲述了PHP实现二叉树深度优先遍历(前序、中序、后序)和广度优先遍历(层次)。分享给大家供大家参考,具体如下: 前言: 深度优先遍历:对每一个可能的分支路径深入到不能再深入为止,而且每个
我是一名优秀的程序员,十分优秀!