Передача универсального типа с использованием строки (текста) (Reflection?)

1

Я сохраняю все свои конфигурации в XML файле, и когда я их загружаю, я хочу, чтобы каждое конфигурационное правило сохранялось в объекте Configuration.

public class Configuration<T> {

    private String name;
    private T value;

    public Configuration(String configName, T value) {
        this.name = configName;
        this.value = value;
    }

    public String getName() {
        return this.name;
    }

    public T getValue() {
        return this.value;
    }

}

В XML у меня есть узел, который выглядит как он для каждой конфигурации: <type>Integer</type>. Этот узел содержит общий тип, который будет иметь конфигурация T, он будет использоваться для значения.

Когда я загружаю узел <type>, я получаю строку со значением "Integer". Это может быть что угодно, Object, MyClazz, но, например, я написал "Integer".

Можно ли использовать значение String для инициализации универсального типа класса?

т.е. в этом случае объектом Configuration будет Configuration<Integer>

  • 0
    Is it possible to use a String value to initialize a class's generic type? Нет, но зачем вам это нужно?
  • 0
    Потому что значение каждой конфигурации может быть различного типа, будь то целое число, строка, длинный и т. Д.
Показать ещё 3 комментария
Теги:
generics

1 ответ

0

Я думаю, что ваш вопрос не имеет смысла из-за стирания типа. Java Generics существует только во время компиляции. Во время выполнения вся информация об общих типах стирается. Так как ваш экземпляр объекта происходит только во время работы, нет никаких возможностей для того, чтобы дженерики вообще вводили изображение.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню