我想创建一个具有两种泛型类型的对象,但在某些地方,它只使用一种泛型类型创建。在这些情况下,第二种类型并不重要,所以我希望能够提供一个选项来创建只有一个泛型类型的类,而另一个泛型类型默认设置为Object,这看起来像是(用C ++风格):
public class myClass<T,O=Object> {...
}
因为我知道Java中没有默认值,所以我不希望有默认类型,但有没有办法创建类似的东西(可能是类覆盖)?
答案 0 :(得分:4)
创建子类似乎是我使用static factory method的开销。
public class MyClass<T, O> {
...
<T> public static MyClass<T, Object> create(...)
...
}
答案 1 :(得分:0)
实现这一目标的典型方法是继承“myClass”。
也就是说,假设你有
public class MyClass<T, O>
{}
你创建了一个子类
public class DefaultMyClass<T> extends MyClass<T, Object>
{}
这可能不如你想要的那么优雅,但它确实是实现这一目标的唯一方法。