Ich habe einige Methoden wieWie schreibe ich eine Methode, die eine andere Methode als Parameter in Java 7 erhalten?
public static ViewInteraction findView(int id) {
return onView(allOf(withId(id), isDisplayed()));
}
public static ViewInteraction findView(int id, int index){
return onView(allOf(withIndex(withId(id), index), isDisplayed()));
}
public static ViewInteraction findView(int id, String text) {
return onView(allOf(withText(text), withId(id)));
}
public static ViewInteraction findView(String text) {
return onView(allOf(withText(text), isDisplayed()));
}
Diese Methoden suchen nach etwas, und wenn sie nicht werfen eine Ausnahme gefunden.
Was ich tun möchte, ist eine Methode schreiben, die eine dieser Methoden ausführt, so dass ich versuchen kann, etwas mehrmals zu finden, bevor schließlich die Ausnahme ausgelöst wird. Entlang dieser Methoden sind andere 10 mehr oder so.
Ich versuchte, das Strategie-Muster und das Befehlsmuster zu verwenden, aber entweder funktionierten sie nicht für mich oder ich wusste nicht, wie man sie umsetzt. Wenn die Lösung eine solche ist, könnten Sie mir eine klare Erklärung geben oder es in der Antwort tun?
Ich suchte nach Tutorials von ihnen, aber alle waren wirklich kurz und ich bin kein Senior-Entwickler, um sofort zu verstehen.
Danke für Ihre Hilfe!
Es wäre am besten, den Code zu veröffentlichen, den Sie haben, wie diese Methoden verwendet werden und was das gewünschte Ergebnis ist. – Strelok
Das hängt davon ab, was diese Methoden tun. Wenn sie grundsätzlich dasselbe tun, aber auf verschiedenen Feldern operieren, können Sie ein Objekt übergeben, das Ihre "Abfrage" beschreibt. Dieses Objekt könnte Felder wie 'text' enthalten und der Typ könnte entweder Nullable sein (wobei' null' bedeuten würde "nicht benutzen") oder 'Optional' (wobei 'isPresent()' false zurückgibt, um anzuzeigen, dass es nicht sein sollte nicht benutzt werden) oder etwas anderes. Auf diese Weise müssten Sie wahrscheinlich nicht mehrere Methoden aufrufen, aber auf einen Schlag - wieder: vorausgesetzt, sie sind sich sehr ähnlich. –
Thomas
Aktualisiert die Frage mit den genauen Methoden. Sie werden verwendet, um Ansichten mit Espresso zu finden. –