chciałbym jakąś pomoc w tej sprawie,Jak uzyskać nazwę klasy wywołującej w Javie?
Przykład:
public class A {
private void foo() {
//Who Invoked me
}
}
public class B extends A { }
public class C extends A { }
public class D {
C.foo();
}
To jest w zasadzie taki scenariusz. Moje pytanie brzmi: jak metoda foo()
może wiedzieć, kto ją nazywa?
EDYTOWANIE: Zasadniczo próbuję zrobić warstwę bazy danych, aw klasie A utworzę metodę, która wygeneruje instrukcje SQL. Takie instrukcje są generowane dynamicznie, pobierając wartości wszystkich publicznych właściwości klasy wywołującej.
Czy ten kod będzie nawet kompilowany? – Spoike
Nie, nie skompiluje się. –
Metoda zmieniająca zachowanie w oparciu o klasę wywołującego naprawdę zmienia programowanie obiektowe na jego głowę. Jak możesz testować taką klasę i zachowywać ją tak samo w teście, jak w produkcji? Musi istnieć lepszy sposób implementacji tego, co robisz ... – daf