是否有可能扩展公共抽象类UiObject2Condition?
这样做
class NoChildCondition: UiObject2Condition<Boolean>() {
override fun apply(obj: UiObject2?): Boolean {
return obj?.childCount == 0
}
}
导致错误:public open fun apply(obj: UiObject2?): Boolean defined in circlecomplete.ciom.uitests.NoChildCondition' has no access to 'public/*package*/ abstract fun apply(p0: UiObject2!): Boolean! defined in androidx.test.uiautomator.UiObject2Condition', so it cannot override it
。
请注意,UiObject2Condition
是androidx.test.uiautomator.Condition<UiObject2, R>
的空子类,Condition
不公开。
实现apply
方法会导致编译错误。不实现它编译但会导致运行时错误。
UIAutomator版本:2.2.0
UiObject2Condition反编译:
package androidx.test.uiautomator;
public abstract class UiObject2Condition<R> extends Condition<UiObject2, R> {
public UiObject2Condition() {
}
}
条件反编译:
package androidx.test.uiautomator;
abstract class Condition<T, R> {
Condition() {
}
abstract R apply(T var1);
}
创建androidx.test.uiautomator
包并将类添加到其中工作正常。
package androidx.test.uiautomator
class NoChildCondition: UiObject2Condition<Boolean>() {
override fun apply(obj: UiObject2?): Boolean {
return obj?.childCount == 0
}
}