Java 如何创建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

我正在用UiWatcher编写一个崩溃代码,但我的团队负责人说他需要一个“不是匿名类,而是一个适当的私有类”。那么我如何用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;
        }

    };

    // 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);
}