2009-05-22 10 views
5

Chciałbym wygenerować metoda-łańcuchowym ustawiające (ustawiaczy zwracające obiekt jest ustawiony), tak jak poniżej:można wygenerować Eclipse łańcuchowym metody ustawiające-

public MyObject setField (Object value) { 
    this.field = value; 
    return this; 
} 

Ułatwia to zrobić dawałaby jednolinijkowych , które uważam za łatwiejsze:

myMethod (new MyObject().setField (someValue).setOtherField (someOtherValue)); 

Czy szablony Eclipse można zmodyfikować, aby to zrobić? Zmieniłem treść, aby zawierała return this;, ale podpis nie został zmieniony.

+0

ja osobiście nie znam odpowiedzi. Jednak możesz znaleźć wyniki, wyszukując "płynne" interfejsy. http://pl.wikipedia.org/wiki/Fluent_interface –

+0

Po prostu dodano potencjalną wtyczkę, zgodnie z prośbą (jeszcze nie testowano). – VonC

Odpowiedz

3

Potwierdzam, że zaćmienie (do 3.5RC1) nie obsługuje generowania setera metodą "łączenia łańcuchów".
Pozwala tylko na komentowanie i personalizację ciała, a nie na modyfikację API settera (co oznacza, że ​​wygenerowany setter nadal zwraca "void").

Może być plugin Builder Pattern może pomóc tutaj ... (choć nie testowane)

klasyczny sposób (nie „głupi”, ponieważ zawsze będzie generować „void” jako typ wartości zwracanej przez setter):
alt text http://help.eclipse.org/help33/topic/org.eclipse.jdt.doc.user/gettingStarted/images/generate_getter_setter_dialog.png

Vs. Nowy sposób (Builder Pattern, potencjalnie wykorzystane jako Eclipse plugin)
alt text http://www.javadesign.info/media/blogs/JDesign/DesignConcepts/DesignPatterns/GOF/Creational-BuilderPatternStructure.jpeg

+0

Byłem prawie pewien, że nie będzie to podstawowa funkcjonalność. Masz pojęcie o wtyczce, która to robi? –

2

Nie należy używać samego zaćmienia, ale trzeba będzie zmienić jeden ze standardowych szablonów, jeśli nie można znaleźć funkcji.

Metoda ta nazywa się przy użyciu metody (co może pomóc w przypadku wyszukiwania Google lub dwóch).

+0

Dzięki, poprawiłem pytanie, aby wyraźnie o tym powiedzieć. –

Powiązane problemy