это то, что мой код выглядит, если я использую предопределенный класс:
List<MyClass> result = new ArrayList<MyClass>();
try {
Query query = mgr.newQuery(MyClass.class);
for(Object obj : (List<Object>) query.execute()) {
result.add(((MyClass) obj));
}
}
....
return result;
теперь мне нужно быть более общим: начиная с общего имени класса (в виде строки, то есть "TheChosenOne" ) мне нужно сделать то же самое, но я не могу понять, как выполнить роль роли..
Просто чтобы сделать пример того, что я пытаюсь сделать:
String str = "TheChosenOne"; //this value may change
Class cls;
List<Object> result = new ArrayList<Object>();
try {
if(str.equals("TheChosenOne"))
cls = Class.forName("com.blabla.TheChosenOne");
else if(str.equals("Rabbit"))
cls = Class.forName("com.blabla.Rabbit");
else if(str.equals("Batman"))
cls = Class.forName("com.heroes.Batman");
else
cls = null;
if(cls != null){
Query query = mgr.newQuery(MyClass.class);
for(Object obj : (List<Object>) query.execute()) {
result.add(((???) obj)); //I need help here!
}
}
}
...
return result;
Я взял "Class.forname()..." часть здесь.
Любые предложения? Спасибо заранее, наилучшие пожелания