В статическом методе, какова гарантия того, что некоторый (любой) класс, который был расширен от вашего, находится в стеке?
Если вы немного подумаете об этом, я подозреваю, вы поймете, что то, что вы ищете, не существует.
/ РЕДАКТ. 1 /
Я думаю, что вам нужно это
abstract class B {
<T extends B> B create(Class<T> clazz) {
....
}
Хм. Что если create
- это protected
метод? Тогда вы можете быть почти уверены, что вызывающий абонент B
, вы можете даже потребовать этого, бросив UnsupportedOperation
или IllegalState
, если вызывающему не назначается B
.
Вы можете использовать Thread.currentThread().getStackTrace()