Как класс макета может не соответствовать его классу java в Котлине?

(activity as HomeActivity).javaClass == HomeActivity::class.java 

Возвращает false . Зачем? Обратите внимание, что activity издевается со следующей функцией

 fun set(activity: KClass<out Activity>) { this.activity = Mockito.mock(activity.java) } 

Вероятно, вы захотите использовать:

if(activity is HomeActivity) вместо (activity as HomeActivity).javaClass == HomeActivity::class.java

Причина заключается в том, что Mockito.mock(HomeActivity.java) будет динамически создавать класс, который реализует HomeActivity с помощью SomeFooMockitoImpl.class который получает параметр HomeActivity.class качестве параметра для создания этого издевающегося экземпляра.

Вы можете проверить в runtime mock объект будет что-то вроде: HomeActivity$$EnhancerByMockitoWithCGLIB$$b8254f54

и его фактическое имя класса:

activity.javaClass.simpleName (должен быть SomeFooMockitoImpl )