我有一个类结构,例如
Class A {
int val;
}
Class B {
A a;
}
Class C {
B b;
}
现在,所有的类都来自第三方服务,我从中得到一个响应,我想读取int值。但我不想做这样的事
假设c是c类型的变量。
if (c != null && c.getb != null) {
B b = c.getb()
and so on.
}
我想避免这些空检查,因为实际上这些pojos是非常分层的,并且有很多字段。
我试过使用
Optional<Integer> val = Optional.ofNullable(c.getb().geta().getval());
val.elseThrow(Ex::new)
但这不是正确的方法,因为(如果b不存在,它会抛出空指针异常,因为在int上可选)。我可以做些什么来解决这样一种情况,即我无法控制Pojos的声明,但想避免公牛检查?
您可以使用地图
int val = Optional.ofNullable(c)
.map(x -> x.getb())
.map(x -> x.geta())
.map(x -> x.getval())
.getOrThrow(Ex::new);
如果知道类名,可以使用方法引用。例如
int val = Optional.ofNullable(c)
.map(C::getb)
.map(B::geta)
.map(A::getval)
.getOrThrow(Ex::new);
这是因为如果值不是null
,则map
将调用该函数一次,否则结果也是null
。即任何空值通过map
调用链落到最后。
我得到了一个导入的文本块,但格式并不总是那么完美。之后我会尝试用jquery解决这个问题。所以我开始用 替换 : null null 但替换不起作用。最终的html应该如下所示:
我喜欢的,我觉得很酷的东西 有人能告诉我我没意见吗?也许很酷,但成本很高?我不知道.多谢.
我想用可选的。由于只能连接流,我有以下问题: 如何将可选 转换为流 ? 示例:
问题内容: 我知道可以偏斜,但我看不到以特定角度偏斜每个角的方法。 这是我正在从事的项目: 专门查看菜单中的标签。现在,我正在使用图像,我想针对功能强大的浏览器进行更改。 我知道可以创建CSS trapazoid,但是使用没有内容的边框。最终结果还需要一些圆角。 问题答案: 这可能是一个大概的想法:
问题内容: 使用Mobile Safari 转到http://m.google.com页面时,您会在页面顶部看到漂亮的栏。 我想那样画一些梯形(美国:梯形),但我不知道怎么做。我应该使用CSS3 3D转换吗?如果您有实现此目标的好方法,请告诉我。 问题答案: 您可以使用以下CSS: 制作所有这些形状真的很酷,请查看以下更漂亮的形状: http://css-tricks.com/examples/S
问题内容: 这是Highchart项目符号图表的示例http://jsfiddle.net/jlbriggs/LdHYt/1/ 如何将其转换为列项目符号图表? 问题答案: 这是您要找的东西吗?小提琴