java将null强制转换为类型
假设我们有一个方法:
@Override
public void run(Object v, NeoWaterfallI.AsyncCallback<V, E> cb) {
this.handle(v, (err, results) -> {
cb.done((E)err, (Map.Entry)results);
});
}
如果结果为空,我假设转换为映射。输入将失败。那么,最好的处理方式是这样的吗
@Override
public void run(Object v, NeoWaterfallI.AsyncCallback<V, E> cb) {
this.handle(v, (err, results) -> {
if(results != null){
results = (Map.Entry)results;
}
cb.done((E)err, results);
});
}
还是有更好的办法?当我尝试使用空检查时,Java不喜欢它,我看到:
# 1 楼答案
这毫无意义:
唯一可以实现的是,如果
results
不是从Map.Entry
继承的类,它将抛出一个异常我不知道
V
、E
、err
和results
是什么类型,但这可能更接近您想要的:让
cb
指定的回调处理第二个参数可以为null的可能性如果需要测试非空
Map.Entry
,可以这样做: