У меня есть класс, который содержит пару разных объектов.использовать переменную как имя объекта для вызова метода объекта
Я могу использовать getDeclaredFields, чтобы получить список имен всех объектов, , но я хочу вызвать метод в этих объектах.
Как я могу это сделать?
ClassA a = new ClassA();
Class cls = c.getClass();
Field[] fields = cls.getDeclaredFields();
for(int i = 0; i< fields.length;i++) {
System.out.println("Field = " + fields[i].toString());
System.out.prontln(fields[i].method()) // how can I call the method from object fields[i]
}
подробнее: причина я использую отражение, я хочу написать тестовый класс, который может быть использован для проверки объектов всех других классов правильно существующими.
testclass (класс a), получить все имена объектов в классе a и использовать метод object.exists() для проверки существующего объекта.
вот мой код: у меня есть несколько классов диалога, каждый класс диалога имеет некоторый класс menuitem, класс checkbox, класс textfield, я хочу написать класс, который можно использовать для проверки всех checboxes, текстовых полей exsting (используйте флажок. exist(), textfield.exist() ...) в данном диалоговом окне.
ToolsMenu c = new ToolsMenu();
Class cls = c.getClass();
Field[] fields = cls.getDeclaredFields();
for(int i = 0; i< fields.length;i++) {
System.out.println("Field = " + fields[i].toString());
println(fields[i].getDeclaringClass().exists()
можно использовать, чтобы получить getdeclaringclass поля [я] класс, но как могу я вызвать метод существует(), который определен в флажках, текстовые поля класса.
Ну, какой тип интересующего вас поля и какой метод? –
Я предлагаю вам google "java reflection api". О том, как это сделать, доступно множество учебных пособий. Но тогда мой вопрос: почему вы используете отражение в первую очередь? –
Вы пытаетесь вызвать только какой-либо метод или знаете о сигнатуре метода? –