Der*_*usA -1 java null object instanceof optional
我想简化代码(例如使用Optionals)
private String formatValue(Object value) {
if (value == null) {
return null;
} else if (value instanceof Date) {
return MyUtils.formatDate((Date)value, Constant.DATE_FORMAT_YYYYMMDD_HHMMSS);
}
return value.toString();
}
Run Code Online (Sandbox Code Playgroud)
值可以是:null,String,Date
我会通过重载来处理它:
private String formatValue(String value) {
return value;
}
private String formatValue(Date value) {
return MyUtils.formatDate(value, Constant.DATE_FORMAT_YYYYMMDD_HHMMSS);
}
Run Code Online (Sandbox Code Playgroud)
...并修复所有通过它的代码null。
如果您确实需要处理null,则:
private String formatValue(String value) {
return value;
}
private String formatValue(Date value) {
return value == null ? null : MyUtils.formatDate(value, Constant.DATE_FORMAT_YYYYMMDD_HHMMSS);
}
Run Code Online (Sandbox Code Playgroud)
以上工作提供了您在编译时就知道要传递的内容的类型,通常就是这种情况。但是,如果必须处理在编译时已知的唯一类型是的可能性,则Object还可以添加一个Object版本:
private string formatValue(Object value) {
if (value instanceof Date) {
return this.formatValue((Date)value);
}
return value == null ? null : value.toString();
}
Run Code Online (Sandbox Code Playgroud)
这开始感觉像是更多的代码,但是它使正常的路径(已知类型的路径)直接进入适当的方法,并且仅当您处理的是动态的东西时才提供Object。
或者你也可以只具备Object版本。它没有更少的支票,但对我来说似乎更简单,更清晰。
| 归档时间: |
|
| 查看次数: |
90 次 |
| 最近记录: |