【发布时间】:2016-04-08 11:28:35
【问题描述】:
我有一些由框架调用的通用处理器。参数是我处理的负载。
interface Processor<T, U> {
U process(T t);
}
在某些情况下,有效负载没有意义并且不存在(仅计算并返回响应)。在这种情况下,框架将 null 作为参数传递。为此我决定使用javax.lang.model.type.NullType:
new Processor<NullType, String>() {
public String process(NullType unused) {
...
return result;
}
}
我在这里误用了NullType 的意图吗?是java.lang.Void 还是其他更合适的?
【问题讨论】:
-
" 这是表达式 null" 的类型 ...所以它表示您希望它表示...现在哪里有混淆?
-
@Tom 好吧,
NullType的两个实例可能实际上并不相等(因为它是一个接口) - 所以它们代表null,但代表Objects.equals(aNullType, bNullType) == false,而Objects.equals(null, null) == true。 -
在使用 android sdk 时,
Void是这些情况下常用的类型。