Тип от отражения Скала - PullRequest
       19

Тип от отражения Скала

3 голосов
/ 04 октября 2011

Предположим, что у меня есть:

trait A

class B extends A

скомпилировано в файлы классов. Позже я загружаю те, которые используют отражение:

val a = Class forName "A"
val b = Class forName "B"

Может кто-нибудь сказать мне, как проверить, является ли b подтипом a?

Ответы [ 2 ]

7 голосов
/ 04 октября 2011

Используйте метод isAssignableFrom в Class:

a isAssignableFrom b

Возвращает true, если b является подклассом / подинтерфейсом a или b == a.

2 голосов
/ 04 октября 2011

Вы можете просто вызвать метод getInterfaces для b и выполнить итерацию по массиву, чтобы увидеть, равно ли любое из них a.

...