„With“-Klausel aus VB.NET

Status
Nicht offen für weitere Antworten.

Hutmacher

Bekanntes Mitglied
Mit Sicherheit hat jeder von euch schonmal mehr als eine Sache mit einer Instanz/etc. machen müssen –
[HIGHLIGHT="Java"]JDialog msgFenster = new JDialog();

msgFenster.setTitle(text);
msgFenster.setIconImage(image);
msgFenster.setEnabled(true);
msgFenster.setVisible(true);[/HIGHLIGHT]

In VB.NET konnte man (sinngemäß auf Java übertragen) es aber so abkürzen:
[HIGHLIGHT="Java"]JDialog msgFenster = new JDialog();

With msgFenster
.setTitle(text);
.setIconImage(image);
.setEnabled(true);
.setVisible(true);
End With[/HIGHLIGHT]

Geht das auch in Java irgendwie?
 

hdi

Top Contributor
Natürlich geht das. Aber nur bei eigenen Klassen:

[HIGHLIGHT="Java"]public MeineKlasse setText(String text){
this.text = text;
return this;
}[/HIGHLIGHT]

So kannst du das ganze verketten weil immer die Instanz zurückgeliefert wird.
Aber ist nich wirklich schön und macht in den wenigsten Fällen Sinn.
Bei Criteria in Hibernate wird das zB so gemacht.

Wenn du wirklich 500 Setter hast, kannste es ja so machen. Aber "korrekt" ist
nicht wirklich, denn Setter sehen eig. per Definition nicht so aus.

Du solltest den Code nicht so "verstümmeln" nur weil du bisschen zu faul für
copy and paste bist.

Wenn du ne IDE hast kannste auch erstmal das so schreiben wie du es abgekürzt
machen würdest, und dann die Zeilen selektieren und:

replace all "." with "meineInstanz."
 
Zuletzt bearbeitet:

Hutmacher

Bekanntes Mitglied
Natürlich geht das. Aber nur bei eigenen Klassen:

[HIGHLIGHT="Java"]public MeineKlasse setText(String text){
this.text = text;
return this;
}[/HIGHLIGHT]

So kannst du das ganze verketten weil immer die Instanz zurückgeliefert wird.
Aber ist nich wirklich schön und macht in den wenigsten Fällen Sinn.
Bei Criteria in Hibernate wird das zB so gemacht.

Wenn du wirklich 500 Setter hast, kannste es ja so machen. Aber "korrekt" ist
nicht wirklich, denn Setter sehen eig. per Definition nicht so aus.

Du solltest den Code nicht so "verstümmeln" nur weil du bisschen zu faul für
copy and paste bist.

Wenn du ne IDE hast kannste auch erstmal das so schreiben wie du es abgekürzt
machen würdest, und dann die Zeilen selektieren und:

replace all "." with "meineInstanz."

Okay, danke; ich war nicht zu faul (glaube ich), aber in VB.NET war das „Guter Stil“ :).
 

hdi

Top Contributor
Naja wenn ich so drüber nachdenke ist es auch nicht wirklich "schlimm" oder sonst was.
Du hast ja keine unerwarteten Seiteneffekte, aber evtl verbraucht sowas mehr Speicher?
Naja ka
 
G

Gast2

Gast
Moin,

Okay, danke; ich war nicht zu faul (glaube ich), aber in VB.NET war das „Guter Stil“ :).

das ist auch nur unter VB.NET für faule Leute ... ich nutze das nicht :noe: ... ob das guter Stil ist - darüber läßt sich streiten (wie bei jeder Sprache)

@hdi:
super Idee this zurück zu liefern :toll:

hand, mogel
 

Saxony

Top Contributor
Hiho,

Das Ganze findet sogar Beachtung in Joshua Bloch's Buch Effective Java Item 2 (Builder Pattern), dort jedoch in Bezug auf viele Konstruktorparameter.

bye Saxony
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen

Neue Themen


Oben