【发布时间】:2008-12-11 20:26:14
【问题描述】:
我想定义一个泛型类型,其实际类型参数只能是
- 数字原始包装类之一(
Long、Integer、Float、Double) String
我可以通过这样的定义满足第一个要求
public final class MyClass<T extends Number> {
// Implementation omitted
}
但我不知道如何见到他们两个。我怀疑这实际上是不可能的,因为AFAIK在定义正式类型参数时无法指定“或”语义,尽管您可以使用诸如
之类的定义来指定“和”语义public final class MyClass<T extends Runnable & Serializable > {
// Implementation omitted
}
干杯, 唐
【问题讨论】:
-
类型擦除会将其放回对象(如果存在)。