我有一些由框架调用的通用处理器。参数是我处理的有效负载。

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还是其他更合适的方法?

最佳答案

在这种情况下,我更喜欢Void,这使得传递null成为唯一有效的参数。

另一方面,可以实例化NullType



出于好奇,it is possible to instantiate an object of type Void

09-04 20:56