java - 如何使用最少的代码比较整数?
问题描述
模型中有一个名为 foo 的整数属性。现在我需要知道它是等于 1 还是等于 2。通常我使用:
if (null != model) {
Integer foo = model.getFoo();
if (foo != null) {
if (foo == 1) {
// do something...
}
if (foo == 2) {
// do something...
}
}
}
有没有更方便的代码来避免 NullPointerException?
解决方案
您可以使用Optional
:
Optional.ofNullable(model)
.map(Model::getFoo)
.ifPresent(foo -> {
switch (foo) { // or if-else-if, the important thing is you skip the null check
case 1:
...
break;
case 2:
...
break;
...
}
});
推荐阅读
- mongodb - 如何解决:'MongoError: $where is not allowed in this atlas tier'?
- scipy - Skipy.optimize - 如何在投资组合优化中设置约束,以使向量中的每个元素都相同?
- sql-injection - 引号内的查询可以归类为 SQL 注入吗?
- azure - 控制 Azure 静态网站中的缓存
- c++ - 逗号作为变量初始化中的分隔符(不作为运算符)
- node.js - 如何在异步调用后管道流而不丢失数据?
- vue.js - 即使在模态中为变量分配了空值,也返回一个值
- r - 将上一行的值与当前行相加,并在添加时保留上一行的值
- javascript -
- haskell - 如果自定义类的成员未命名,我如何访问它们?