Если мне нужно вернуть экземпляр класса, основанный на String (например, создавая логику JSON), как это должно быть написано?Как получить ссылку на класс из String в Java?
Моя первоначальная мысль была коммутатором, но в версии Java на платформе Android выглядит так, что операторы switch не позволяют Strings.
Следующая мысль была HashMap:
private HashMap<String, Class> classMap = new HashMap<String, Class>();
classMap.put("someClass", SomeClass.class)?
// ... etc
String someString = jsonObject.getString("someProperty");
Class classRef = classMap.get(someString);
SomeSuperClass classInstance = new classRef();
Это не работает. Я бы предпочел не if/else
по длинному списку возможностей.
Никакая версия Java не допускает операторов switch со строками (кроме Java 7, но все знают, что это всего лишь миф, чтобы держать нас в покое). – Tharwen