У меня есть класс:
class Superclass { static List list() { ... } }
и подклассы:
class Subclass extends Superclass { ... }
class Subclass2 extends Superclass { ... }
Я хочу вызвать метод list
следующим образом: Subclass.list()
или Subclass2.list()
, исделать что-то другое в зависимости от того, с каким подклассом он был вызван.
Есть ли способ узнать, какой подкласс вызывает метод list
?
Примечание: я не хочу иметьпереопределить метод list
в каждом из подклассов.
ОБНОВЛЕНИЕ: Все говорят, что это плохой дизайн, и в большинстве случаев я думаю, что это будет, но я так не думаю в моем случае.Мой ORM определяет методы, которые принимают java.lang.Class
.Я хочу предоставить сокращение для методов ORM, чтобы я мог сказать User.list(...)
вместо ORM.list(User.class, ...)
.