Определение параметров формального типа Java (Generics)
Я хотел бы определить универсальный тип, чей фактический параметр типа может быть только
Один из числовых примитивных классов-обёрток (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
}
Ура, Дон