Android 为具有泛型的类创建浓缩咖啡匹配器
我正在尝试为浓缩咖啡创建一个新的匹配器,以便能够选择列表项。对于像Office这样的简单类来说,这非常有效。看看这个例子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
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
}