У меня есть несколько классов в одном пакете на Java.Я хочу создать экземпляры объектов этих классов из массива с именами классов в виде строк.
Вот пример класса, который я хотел бы использовать, все они имеют одинаковую структуру.
class Class1 {
public String[] firstMethod(){
String[] data = {"NEW_ITEM"};
return data;
}
}
Вот класс, из которого я пытаюсь создать экземпляр.
class Main {
static {
String[] classes = {"Class1","Class2"};
for (String cls : classes) {
try {
Object o = Class.forName(cls).newInstance();
o.firstMethod();
} catch(ClassNotFoundException | IllegalAccessException | InstantiationException ex) {
System.out.println(ex.toString());
}
}
Моя проблема в том, что когда я пытаюсь вызвать firstMethod () с использованием объекта o, я получаю эту ошибку.
exit status 1
Main.java:19: error: cannot find symbol
o.firstMethod();
^
symbol: method firstMethod()
location: variable o of type Object
1 error
Я подозреваю, что это потому, что он имеет тип Object, а не тип Class1.Я видел решения, в которых вы приводите объект к нужному вам классу.Однако, когда вы печатаете, вам нужно использовать имя класса, чего я и стараюсь избегать.Мне нужно использовать имя класса в виде строки.
Кто-нибудь знает решение, где я могу вызывать методы с созданными объектами?