Например, я увидел выражение Scala, как это:В Scala/Java, как проверить, где определен метод?
objX.methodY
Там не кажется, нет способа, чтобы увидеть, где methodY
пришел, он может пришел из:
(1) класс objX
, давайте вызов это ClassX
(2) супер класс objX
(ClassX
), давайте назовем его SuperClassX
(3) класс ClassZ
, ClassZ
не имеет отношения к objX
, но существует неявное преобразование от ClassX
до ClassZ
.
Возможно, существует три возможности для источника methodY
, есть ли у кого-нибудь идеи о том, как определить, где определяется methodY
?
Другими словами, в Scala, как проверить информацию о методе (особенно метод пришел из неявного преобразования) в Runtime?
Я не знаю о scala; но в Java вы можете так думать - метод всегда «на» классе времени выполнения объекта; если этот класс не определяет метод, он «наследует» определение метода из суперкласса. – ZhongYu
@ bayou.io Да, и Scala представила «неявное преобразование», что затрудняет поиск. –
Я подозреваю, что неявное преобразование разрешено во время компиляции, а не во время выполнения. - Но опять же я не знаю scala. – ZhongYu