Mah*_*esh 2 java optional java-8
假设我有一个pojo Medicine,
class Medicine{
private String xmedicine;
private String ymedicine;
private String zmedicine;
//getter and setter here....
}
Run Code Online (Sandbox Code Playgroud)
如果Medicine不为null,则用于收集药物的API下方。
public List<Map<String, Object>> gettMedicine(Medicine medicine) {
List<Map<String, Object>> detailsList = null;
List<Integer> list = new ArrayList<>();
if(null != medicine.getXmedicine()){
list.add(medicine.getXmedicine());
}
if(null != medicine.getYmedicine()){
list.add(medicine.getYmedicine());
}
if(null != medicine.getZmedicine()){
list.add(medicine.getZmedicine());
}
if(!CollectionUtils.isEmpty(list)) {
detailsList = //calling other API to get details from list;
}
return detailsList;
}
Run Code Online (Sandbox Code Playgroud)
最好在Optional这里使用Java 8 来消除,NullPointerException因为我有多个空检查使我的代码样本化。
如果是,那么您能建议我Optional在这里使用吗?
您不应该Optional在类中使用字段,也不应该像在ifs中那样用null检查替换它。在这种情况下,您可以执行以下操作:
Stream.of(medicine.getXmedicine(), medicine.getYmedicine(), medicine.getZmedicine())
.filter(Objects::nonNull)
.collect(Collectors.toList())
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
47 次 |
| 最近记录: |