Java 如何创建UiWatcher()的适当私有类
我正在用UiWatcher编写一个崩溃代码,但我的团队负责人说他需要一个“不是匿名类,而是一个适当的私有类”。那么我如何用UiWatcher()实现这一点呢 //由我领导的评论:不是匿名类。真正的私人阶级Java 如何创建UiWatcher()的适当私有类,java,android,automation,android-uiautomator,Java,Android,Automation,Android Uiautomator,我正在用UiWatcher编写一个崩溃代码,但我的团队负责人说他需要一个“不是匿名类,而是一个适当的私有类”。那么我如何用UiWatcher()实现这一点呢 //由我领导的评论:不是匿名类。真正的私人阶级 public boolean checkForCondition() { UiObject crashButton = new UiObject( new UiSelector().tex
public boolean checkForCondition() {
UiObject crashButton = new UiObject(
new UiSelector().textStartsWith("Unfortunately,"));
if (crashButton.exists()) {
log("Found the OK dialog");
UiObject okButton = new UiObject(new UiSelector()
.className("android.widget.Button").text("OK"));
try {
okButton.click();
} catch (UiObjectNotFoundException e) {
log("The chance of not having 'OK' button when the application crash is extremely less.");
return false;
}
}
return true;
}
};
// Register watcher
UiDevice.getInstance().registerWatcher(CRASH_WATCHER_NAME, crash);
}
因此,在命名的内部类(包含在现有类文件/类主体中)中扩展
UIWatcher
:
然后将崩溃声明为:
UiWatcher crash = new MyUIWatcher();
错误,即使我试图扩展它,但它给出了错误。本地类MyUIWatcher的非法修饰符;只有抽象的或最终的是permitted@Dummycoder那你没有告诉我所有的细节。让它成为一个内部类,并实例化它。@Dummycoder这个策略。@Dummycoder这正是我在回答中写的。
public class MyUIWatcher implements UiWatcher() {
public boolean checkForCondition() {
// logic
}
}
UiWatcher crash = new MyUIWatcher();
public static class MyUIWatcher implements UiWatcher {
public boolean checkForCondition() {
UiObject crashButton = new UiObject(
new UiSelector().textStartsWith("Unfortunately,"));
if (crashButton.exists()) {
log("Found the OK dialog");
UiObject okButton = new UiObject(new UiSelector().className(
"android.widget.Button").text("OK"));
try {
okButton.click();
} catch (UiObjectNotFoundException e) {
log("The chance of not having 'OK' button when the application crash is extremely less.");
return false;
}
}
return true;
}
};
// Define watcher
private void CrashWatcher() {
UiWatcher crash = new MyUIWatcher();
// Register watcher
UiDevice.getInstance().registerWatcher(CRASH_WATCHER_NAME, crash);
}