Wie erstellen Sie IM OUT-oder OUT-Parameter in Java

In PL/SQL (oder vielen anderen Sprachen), kann ich IN-OUT oder OUT-Parameter, die aus einer Prozedur zurückgegeben. Wie kann ich erreichen, eine ähnliche Sache in Java?

Ich weiß, dieser trick:

public void method(String in, String[] inOut, String[] inOut2) {
  inOut[0] = in;
}

Wo die in parameter repräsentiert einen IN-parameter und die inOut parameter einen Wert zurückgeben. Die Konvention wäre, dass String[] inOut ist ein array von inOut.length == 1.

Das ist irgendwie ungeschickt.

BEARBEITEN, Feedback zu Antworten: Andere tricks gehören:

  • Halter/wrapper-Klassen, aber ich will nicht einführen, keine neuen Typen, callbacks, etc.
  • Werte zurückgeben: ich hätte gerne ein Allgemeinen Lösung. I. e. eine mit mehreren IN-OUT-Parameter beteiligt.
  • wrapper für die IN-OUT-parameter als Rückgabewert: Das ist ein gangbarer Weg, aber noch nicht so schön, da die wrapper-würde generiert werden irgendwie

Weiß jemand einen besseren Weg, dies zu erreichen in der Regel? Der Grund ist ich brauche eine Allgemeine Lösung ist, weil ich möchte, zu generieren, Komfort-source-code von PL/SQL in ein Datenbank-schema.

  • "Werte zurückgeben: ich hätte gerne eine Allgemeine Lösung. I. e. eine mit mehreren IN-OUT-Parameter zu engagieren", Siehe meine Antwort. Mehrere IN/OUT params? Rückgabe einer Objektinstanz mit Eigenschaften, die für jeden. Abgesehen von, dass, Nein, es gibt nichts besseres, als den array-trick.
  • Als ich anfing Java zu lernen, nach vielen Jahren von C/C++ Entwicklung, ich suchte auch nach einem Weg, um pass-by-reference. Aber jetzt, Jahre danach, kann ich nicht mehr erinnern, das Letzte mal wollte ich das tun. Die array-trick ist weniger elegant als andere Ansätze, zitiert in diese Antworten und Kommentare.
InformationsquelleAutor Lukas Eder | 2010-12-15
Schreibe einen Kommentar