Kotlin为assertThat(foo,instanceOf(Bar.class))
你将如何用Kotlin编写assertThat(foo, instanceOf(Bar.class))
?
似乎它不喜欢.class
如果可能的话,我想去找一个比assertTrue(foo is Bar)
更“精确”的断言
Bar::class
返回KClass
实例,这是Kotlin相当于Java的Class
实例。
instanceOf
方法需要Class
实例,而不是KClass
,所以你必须使用Bar::class.java
来转换它。
所以你的断言应该是这样的:
assertThat(foo, instanceOf(Bar::class.java))
有关Java interop的更多信息,你可以在这里find。
你也可以看看哈姆雷斯特图书馆,这可能会增加你的断言流利程度:
assert.that(foo, isA())
assertThat(foo, instanceOf(Bar::class.java))
文档: https : //kotlinlang.org/docs/reference/java-interop.html#getclass