Я работаю над кодом, в котором мне нужно преобразовать базовый класс в производный, где у меня есть массив универсальных типов, которые получены на основе.
Например, у меня есть Base и Derived1, Derived2, и я помещаю их в Class [] {Derived1.class, Derived2.class}, и я передаю этот массив конструктору класса.
В этом конструкторе мне нужно создавать экземпляры этих производных классов, и я не знаю, как это сделать, потому что я получаю информацию о том, что Class и Base несовместимы.
Вот мой пример кода
public abstract class Base {
public abstract Base create(String s);
}
public class Derived extends Base {
java.lang.Integer value;
private static Derived integer = new Derived();
public static Derived getInstance(){
return integer;
}
public Base create(String s) {
value = java.lang.Integer.parseInt(s);
return this;
}
}
public class Clazz {
Class<? extends Base> type;
ArrayList<Base> arrayList;
public Class<? extends Base> getType() {
return type;
}
}
public class AnotherClazz{
ArrayList<Clazz> clazzArrayList;
Class<? extends Base>[] types;
AnotherClazz(Class<? extends Base>[] args){
clazzArrayList = new ArrayList<>();
types = args; // assuming I pass 2 elements in array
String[] strings = new String[]{"1","2"};
for (int i=0; i<args.length; ++i){
if (types[i] instanceof Base){
// here i want to check validity of class
}
}
for (int i=0; i<strings.length; ++i){
clazzArrayList.get(i).arrayList.add(((types[i]) Base).getInstance().create(strings[i]));
//here i want to create instance of object from type assigned to specific column
}
}
Спасибо за помощь.