Ответ 1
Если вы не знаете тип объекта (у вас есть AnyRef
) и просто хотите проверить, является ли он экземпляром какого-либо класса или признака, вы можете использовать isInstanceOf
:
b.isInstanceOf[T2]
Если вы хотите применить его к этому типу, используйте asInstanceOf
b.asInstanceOf[T1]
С другой стороны, если вы не знаете, что ищете, тогда вы можете попытаться использовать отражение Java. Чтобы получить список реализованных черт и интерфейсов, используйте:
c.getClass.getInterfaces
Чтобы использовать суперкласс:
c.getClass.getSuperclass