Hallo,
ich habe kein praktisches Problem, ich muss nur für einen technischen Bericht die Thread-Erzeugung erklären.
Mit dem nachfolgendenen Beispielcode wird ein Thread gestartet:
public void Get() { // Capture property values in local variables before running // asynchronously.
final CapturedProperties webProps = capturePropertyValues("Get");
AsynchUtil.runAsynchronously(new Runnable() {
@Override
public void run() {
try { performRequest(webProps, null, null); }
catch (FileUtil.FileException e) { form.dispatchErrorOccurredEvent(Web.this, "Get", e.getErrorMessageNumber()); }
catch (Exception e) { form.dispatchErrorOccurredEvent(Web.this, "Get", ErrorMessages.ERROR_WEB_UNABLE_TO_GET, webProps.urlString);
}
}
}
);
}
Meine Frage nun: Wie ist denn genau die folgende Zeile Java-syntax-mäßig (fachlich möglichst präzise und korrekt [Blockierte Grafik: https://www.androidpit.de/img/emoticons3/wink.png] ) zu erklären:
AsynchUtil.runAsynchronously(new Runnable() {...})
Also AsynchUtil ist eine Klasse aus dem Paket java.lang (richtig formuliert?)
Mit dieser Zeile wird die statische Methode (da das Objekt AsynchUtil nicht erzeugt wurde, kann diese Methode ja nur aufgerufen werden, wenn sie statsich ist. richtig?) runAsynchronously aufgerufen. Diese Methode erhält als Paramter das frisch erzeugte Objekt (new) Runnable ohne Parameter ( () ). Soweit richtig? Und die geschweiften Klammern dahinter mit einem Programmcode drin... wie ist das java-mäßig genau zu erklären/rechtfertigen? Offensichtlich gehört das alles zum Übergabeparamter von runAsynchronously. Aber ich dachte immer, man kann nur Variablen (Datenfelder oder Objekte) als Parameter an eine Methode übergeben... und nicht ganze Programmcodes und schon garkeine geschweiften Klammern !?
Ich bedanke mich schonmal.