我喜欢空对象模式的想法,并强迫我使用它,直到它真正感觉正常且良好为止。目前,我还没有看到如何在泛型类型中使用它。我知道可以定义第二个泛型类型并传入类以构造默认对象,但是对于这种模式,这确实感觉太多了。有什么好办法吗?
public class GenericExample<T> {
public static final GenericExample NULL = ???;
private T attribute;
public GenericExample(T attribute) {
this.attribute = attribute;
}
}
public class HoldGeneric {
private GenericExample<String> name = GenericExample.NULL;
public initLater(String name) {
this.name = new GenericExample<String>(name);
}
}
您可以遵循JDK的操作,并使用静态方法来推断泛型类型并进行未经检查的强制转换。
java.util.Collections
为空列表和集合实现Null对象。在Java泛型中,有一个公共静态字段。
public static final List EMPTY_LIST = new EmptyList();
发布泛型:现在有静态方法可以推断泛型并执行未经检查的转换,以将其转换为正确的类型。类型并不重要,因为集合是空的,但是它使编译器感到满意。
@SuppressWarnings("unchecked")
public static final <T> List<T> emptyList() {
return (List<T>) EMPTY_LIST;
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句