Gibt es in Java Objekterstellungsausdrücke, ähnlich wie in C #?

8

In C # kann ich eine Instanz jeder benutzerdefinierten Klasse, die ich schreibe, erstellen und Werte für ihre Mitglieder übergeben, beispielsweise:

%Vor%

Diese Methode zum Erstellen von Objekten wird Objekterstellungsausdrücke genannt >. Gibt es einen Weg, wie ich das gleiche in Java machen kann? Ich möchte Werte für beliebige öffentliche Mitglieder einer Klasse übergeben.

    
Slavo 29.06.2011, 08:52
quelle

2 Antworten

10

Nein, es gibt nichts direktes Ähnliches. Der nächste, den Sie in Java finden können (ohne eine Builder-Klasse usw. zu schreiben), ist die Verwendung eines anonymen inneren Klassen- und Initialisierungsblocks, was schrecklich ist, aber funktioniert:

%Vor%

Beachten Sie die doppelten geschweiften Klammern ... eins, um anzuzeigen "dies ist der Inhalt der anonymen inneren Klasse" und eins, um den Initialisierungsblock anzuzeigen. Ich würde diesen Stil nicht persönlich empfehlen.

    
Jon Skeet 29.06.2011, 08:56
quelle
0

Nein. Aber ich finde den folgenden Code nicht zu ausführlich

%Vor%

Oder der gute alte Konstruktor, der zu verwirrend ist

%Vor%

Manche mögen Methodenketten vorschlagen:

%Vor%

erfordert eine zusätzliche Methode pro Feld. Es ist Kesselplattencode, eine IDE kann hier helfen.

Dann gibt es das Builder-Muster, das für den API-Autor noch mehr Arbeit ist.

    
irreputable 29.06.2011 09:28
quelle

Tags und Links