-3
Как можно добиться того, чтобы общий тип класса с несколькими баллонами? Примером являются подклассы Number и Boolean.generic Тип нескольких классов в java
Как можно добиться того, чтобы общий тип класса с несколькими баллонами? Примером являются подклассы Number и Boolean.generic Тип нескольких классов в java
Если я правильно понимаю ваш вопрос, один из вариантов, чтобы создать дополнительные перечисления, как класс с ограниченным числом экземпляров:
public final class ValueType<T> {
public static final ValueType<Boolean> BOOLEAN = new ValueType<>(Boolean.class);
public static final ValueType<Integer> INTEGER = new ValueType<>(Integer.class);
private final Class<T> clazz;
private ValueType(Class<T> clazz) {
this.clazz = clazz;
}
public Class<T> getType() {
return clazz;
}
}
Теперь ваш класс может быть объявлен следующим образом:
public class MyClass<T> {
public MyClass(ValueType<T> type) {
Class<T> clazz = type.getType();
}
}
Таким образом, вы можете создать его экземпляр, как
MyClass<Boolean> c = new MyClass<>(ValueType.BOOLEAN);
Или
MyClass<Integer> c = new MyClass<>(ValueType.INTEGER);
Но у вас нет других возможностей, потому что у вас нет других объектов ValueType
.
Как вы ожидаете использовать этот общий параметр? Чтобы прояснить свой вопрос, напишите пример кода (возможно, используя некоторую несуществующую конструкцию языка, которую вы хотите иметь). –
Читайте о интерфейсах и полиморфизме, и, кстати, у JDK есть класс Object, который является суперклассом всех других классов, которые есть в JDK или которые вы создаете сами. Таким образом, класс Object может действовать как общий тип при получении параметров метода или при создании коллекции разных типов. –