Я хотел бы получить некоторую помощь в этом вопросе,Как получить имя вызывающего класса в Java?
Пример:
public class A {
private void foo() {
//Who Invoked me
}
}
public class B extends A { }
public class C extends A { }
public class D {
C.foo();
}
В основном это сценарий. Мой вопрос в том, как может метод foo()
знать, кто его называет?
EDIT: В основном я пытаюсь выполнить слой базы данных, а в классе A создам метод, который будет генерировать SQL-выражения. Такие операторы динамически генерируются путем получения значений всех общедоступных свойств вызывающего класса.
Будет ли этот код компилироваться? – Spoike
Нет, он не будет компилироваться. –
Метод, который изменяет его поведение на основе класса вызывающего, действительно превращает объектно-ориентированное программирование в его голову. Как вы можете протестировать такой класс и вести себя так же, как и в процессе тестирования? Там должен быть лучший способ реализовать то, что вы делаете ... – daf