Android 为具有泛型的类创建浓缩咖啡匹配器

Android 为具有泛型的类创建浓缩咖啡匹配器,android,generics,kotlin,android-espresso,Android,Generics,Kotlin,Android Espresso,我正在尝试为浓缩咖啡创建一个新的匹配器,以便能够选择列表项。对于像Office这样的简单类来说,这非常有效。看看这个例子 private fun withOffice(title: String): Matcher<Any> { return object : BoundedMatcher<Any, Office>(Office::class.java) { override fun describeTo(description: Descri

我正在尝试为浓缩咖啡创建一个新的匹配器,以便能够选择列表项。对于像Office这样的简单类来说,这非常有效。看看这个例子

  private fun withOffice(title: String): Matcher<Any> {
    return object : BoundedMatcher<Any, Office>(Office::class.java) {
        override fun describeTo(description: Description?) {
            description?.appendText("with title '$title'");
        }

        public override fun matchesSafely(office: Office): Boolean {
            return office.name == title
        }
    }
}
private fun with office(标题:String):Matcher

我的假设是kotlin会把事情和java类型系统混在一起。
也许有人在这里有一个想法。

这是因为
keytransationpair
不是一个类,当说class意味着
keytransationpair::class.java
时,你可以这样做:

return object : BoundedMatcher<Any, KeyTranslationPair<*,*>>(KeyTranslationPair::class.java)
您还可以检查
Key
是否是
CompanyType
执行以下操作的实例:

override fun matchesSafely(item: KeyTranslationPair<*, *>?): Boolean {
    if(item?.key is CompanyType){
        return item.key == companyType
    }
        return false
    }
override fun matchesafely(项:keytransationpair?):布尔值{
if(项目?.key为公司类型){
return item.key==公司类型
}
返回错误
}
希望能有帮助

return object : BoundedMatcher<Any, KeyTranslationPair<*,*>>(KeyTranslationPair::class.java)
override fun matchesSafely(item: KeyTranslationPair<*, *>?): Boolean {
   return item?.key == companyType
}
override fun matchesSafely(item: KeyTranslationPair<*, *>?): Boolean {
    if(item?.key is CompanyType){
        return item.key == companyType
    }
        return false
    }