У меня есть несколько дочерних классов, которые расширяют родительский класс.
Родительский класс:
Class ParentClass{
public void printMessage() {
Reporter.log("Child Class Name at Runtime = " +this.getClass().getSimpleName());
Reporter.log("Child Class Variable Value at Runtime = ");
}
}
Дочерний класс A:
Class ChildA extends ParentClass{
String customerName = "Adam";
printMessage();
}
Дочерний класс B:
Class ChildB extends ParentClass{
String customerName = "Bob";
printMessage();
}
Когда я запускаю один из классов, я хочу, чтобы вывод был таким, как показано ниже:
Если я запускаю ClassA:
Child Class Name at Runtime = Class A
Child Class Variable Value at Runtime = Adam
Аналогично, для других дочерних классов, таких как ClassB, et c.
Я не хочу передавать аргумент customerName когда я вызываю метод printMessage () по нескольким причинам (сотни вызовов сообщений).
Как получить доступ к значению времени выполнения переменной класса дочернего класса из родительского класса?
Я проверил методы, доступные в this.getClass (), но не смог найти тот, который мог бы использовать.
Класс определяется во время выполнения. Вот почему я использую this.getClass (). GetSimpleName (), и он отлично работает при печати имени дочернего класса во время выполнения.