我运行下面的代码,在返回任何()时得到错误;
error: incompatible types
required: Matcher <View>
found: Matcher <Object>
/**
* Perform action of waiting until UI thread is free. <p/> E.g.: onView(isRoot()).perform(waitUntilIdle());
* @return
*/
public static ViewAction waitUntilIdle(){
return new ViewAction(){
@Override public Matcher<View> getConstraints(){
return anything();
}
@Override public String getDescription(){
return "wait until UI thread is free";
}
@Override public void perform( final UiController uiController, final View view){
uiController.loopMainThreadUntilIdle();
}
}
;
}有什么想法吗?
发布于 2015-10-22 05:46:27
anything()不是一个通用方法,所以您将始终得到一个Matcher<Object>。
在内部,anything()使用IsAnything类。您可以创建自己的anyView()方法来返回Matcher<View>。
public static ViewAction waitUntilIdle(){
return new ViewAction(){
@Override public Matcher<View> getConstraints(){
return anyView();
}
@NonNull
private Matcher<View> anyView() {
return new IsAnything<>();
}
@Override public String getDescription(){
return "wait until UI thread is free";
}
@Override public void perform( final UiController uiController, final View view){
uiController.loopMainThreadUntilIdle();
}
}
;
}https://stackoverflow.com/questions/33255294
复制相似问题