Gibt es eine Möglichkeit, Getter und Setter in Eclipse automatisch zu generieren?

256

Ich arbeite an einem neuen AndroidProjekt ( Java) und habe ein Objekt mit einer großen Anzahl von Variablen erstellt. Da ich vorhabe, für alle Getter und Setter hinzuzufügen, habe ich mich gefragt: Gibt es eine Verknüpfung Eclipsezum automatischen Generieren der Getter und Setter in einer bestimmten Klasse?

Phil
quelle
1
Klingt für mich wie ein Stalker ... Ich habe nur die gesamte Java-Programmierung ohne IDE durchgeführt, daher ist die Verwendung von Eclipse für mich noch relativ neu.
Phil
3
@krio - Die ganze Welt verwendet Eclipse nicht für Java-Entwickler. Ich habe den größten Teil meiner Arbeit in IntelliJ erledigt und viele dieser Fragen gestellt, als ich anfing, in Eclipse zu arbeiten.
vcsjones
1
@Phil, vcsjones - sehr wahr, ich entschuldige mich, aber überprüfen Sie dies, - google.com.au/… - Ich denke, Stackoverflow sagt, dass Forschung wichtig ist
TeaCupApp
2
Es ist der schnellste Weg: Strg + 3 Ggas
Dellasavia
1
@Konstantin, das nur sagt, um zu vermeiden, dass sie in derselben Klasse verwendet werden. Rufen this.getCount()Sie also nicht an , wenn Sie nur darauf verweisen können this.mCount. Obwohl dies eine kostspieligere Operation sein kann, ist es ein sauberer Ansatz, über Getter und Setter auf Variablen anderer Objekte zuzugreifen.
Phil

Antworten:

357

Rufen Sie das Kontextmenü (dh Rechtsklick) im Quellcodefenster der gewünschten Klasse auf. Wählen Sie dann das SourceUntermenü; Wenn Sie Generate Getters and Setters...in diesem Menü auswählen, wird ein Assistentenfenster angezeigt.

Source -> Generate Getters and Setters...

Wählen Sie die Variablen aus, für die Sie Getter und Setter erstellen möchten, und klicken Sie auf OK.

Hagai Cibulski
quelle
Es gibt nur 'Elementkommentar generieren', keine Getter und Setter. Ich verwende Eclipse 4.4.0, PDT-Plugin installiert. In der Zwischenzeit kann dies verwendet werden - mikeangstadt.name/projects/getter-setter-gen .
Xdg
Funktioniert hervorragend mit Eclipse Mars.2 Release (4.5.2). Vielen Dank.
this.user3272243
Vielen Dank, dass Sie mir etwa eine Million Jahre Langeweile erspart haben!
Jay Edwards
11
Sie können auf dieses Untermenü auch mit der Tastenkombination SHIFT+ ALT+ zugreifen Sund dann die Optionen Get Get und Setter generieren durch Drücken von öffnen R.
Rosa
Komisch, wie meine Antwort hier so populär wurde, aber heutzutage würde ich nur Lombok verwenden , wie von anderen unten bemerkt.
Hagai Cibulski
70

In Eclipse Juno öffnet standardmäßig ALT + UMSCHALT + S, R das Dialogfeld Getter / Setter. Beachten Sie, dass Sie alle 4 Tasten drücken müssen.

RoboAlex
quelle
5
Sie können den SHIFT-Teil weglassen und auch ALT + S, R ausführen.
Jason Wheeler
2
Sie können nicht SHIFTin Eclipse Kepler
Yellavon
Sie können SHIFTin Eclipse Oxygen weglassen.
Jake Reece
Sie können SHIFTin Eclipse 2018-12 nicht auslassen.
Neph
69

Right click -> Source -> Generate setters and getters

Aber um es noch bequemer zu machen, ordne ich dies immer ALT + SHIFT+ Gvon zuWindows -> Preferences -> General -> Keys

Bozho
quelle
2
Sehr nützlich! Ich verwende die gleiche Tastenbelegung.
Ángel Carlos del Pozo Muela
41

Alle anderen Antworten konzentrieren sich nur auf die IDE-Ebene. Dies ist nicht die effektivste und eleganteste Methode, um Getter und Setter zu generieren. Wenn Sie mehrere zehn Attribute haben, wird Ihr Klassencode durch die relevanten Getter- und Setter-Methoden sehr ausführlich.

Der beste Weg, um Getter und Setter automatisch zu generieren, ist die Verwendung von Projekt-Lombok-Annotationen in Ihrem Java-Projekt . Lombok.jar generiert beim Kompilieren von Java-Code Getter- und Setter-Methoden.

Sie konzentrieren sich nur auf die Benennung und Definition von Klassenattributen / -variablen, lombok erledigt den Rest. Dies ist einfach, um Ihren Code zu pflegen.

Wenn Sie beispielsweise die Getter- und Setter-Methode für ageVariablen hinzufügen möchten, fügen Sie einfach zwei Lombok-Anmerkungen hinzu:

@Getter @Setter 
public int age = 10;

Dies entspricht dem folgenden Code:

private int age = 10;
public int getAge() {
    return age;
}
public void setAge(int age) {
    this.age = age;
}

Weitere Details zu Lombok finden Sie hier: Projekt Lombok

dongpf
quelle
1
Das ist es! Vielen Dank! Eigentlich sollte Ihre Antwort ganz oben stehen, da Lombok die einzig wahre Lösung ist, um zu vermeiden, dass der gesamte Java-Code angezeigt wird, den man generieren oder schreiben müsste. Vielen Dank!
Stefan Endrullis
2
Projekt Lombok (oder zumindest die Idee) sollte Teil von Java 11 sein. Ich benutze Kotlin für Pojo-Klassen nur, um der Getter-Setter-Generierung zu entkommen: /
Wolf359
31

Möglichkeiten, Getter & Setter zu generieren -

1) Drücken Sie Alt+ Shift+ Sund dannR
2) Klicken Sie mit der rechten Maustaste -> Quelle -> Getters & Setter generieren.
3) Gehen Sie zum Quellmenü -> Getters & Setter generieren.
4) Gehen Sie zum Windows-Menü -> Einstellungen -> Allgemein -> Tasten (Schreiben generieren Getter & Setter im Textfeld)
5) Klicken Sie auf die Fehlerbirne des Feldes -> Getter & Setter erstellen ...
6) Drücken Sie Ctrl+3 und schreiben Sie Getter & Setter in das Textfeld und wählen Sie dann die Option Getters & Setter generieren

Wenn Mac OS Alt + cmd + S drückt, wählen Sie Getters & Setter

Deepak Gupta
quelle
2
Ich denke, dass 1 es auf diese Weise etwas einfacher ist: 1) Drücken Sie Alt + Umschalt + S, dann R
Paco Abato
1
Das Drücken von Strg-3 und die direkte Eingabe von "Getter" fehlt in der Liste. Viel einfacher zu merken als bestimmte Verknüpfungen, da dies für jeden Befehl, jede Ansicht usw. funktioniert.
Bananeweizen
@ Bananeweizen - Danke
Deepak Gupta
11

Rechtsklick-> Getter und Setter generieren macht den Job gut, aber wenn Sie eine Tastenkombination in Eclipse in Windows erstellen möchten, können Sie die folgenden Schritte ausführen:

  1. Gehen Sie zu Fenster> Einstellungen
  2. Gehen Sie zu Allgemein> Tasten
  3. Liste für "Quick Assist - Getter / Setter für Feld erstellen"
  4. Halten Sie im Textfeld "Bindung" unten die gewünschten Tasten gedrückt (in meinem Fall verwende ich ALT + UMSCHALT + G).
  5. Klicken Sie auf Übernehmen und auf OK
  6. Wählen Sie nun in Ihrem Java-Editor das Feld aus, für das Sie Getter / Setter-Methoden erstellen möchten, und drücken Sie die Verknüpfung, die Sie in Schritt 4 eingerichtet haben. Klicken Sie in diesem Fenster auf OK, um die Methoden zu erstellen.

Hoffe das hilft!

Sufinawaz
quelle
9

Sicher.

Verwenden Sie Get Getters and Setter aus dem Quellmenü oder dem Kontextmenü für ein ausgewähltes Feld oder einen ausgewählten Typ oder eine Textauswahl in einem Typ, um den Dialog zu öffnen. Das Dialogfeld "Getter und Setter generieren" zeigt Getter und Setter für alle Felder des ausgewählten Typs an. Die Methoden sind nach den Feldern des Typs gruppiert.

Weitere Informationen finden Sie in der Hilfedokumentation .

vcsjones
quelle
8

Ja. Klicken Sie mit der rechten Maustaste auf den Code, und ein Menü wird angezeigt. dort "Quelle", "Getters and Setter generieren" und daneben sehen Sie die Verknüpfung Alt + Shift + S und R auf meinem System.

In ähnlicher Weise können Sie zu anderen Untermenüs in diesem Hauptmenü navigieren. Wenn Sie die entsprechende Verknüpfung eingeben, wechseln Sie direkt zum Untermenü anstelle des Hauptkontextmenüs und können dann entweder aus dem Menü auswählen oder einen anderen Buchstaben zur Auswahl aus der Liste eingeben.

Zds
quelle
8

Unter Mac OS wird Alt+Cmd+Sdann "... Getter und Setter" ausgewählt.

Alexander Volkov
quelle
7

Ich ziehe es vor, zuerst das private Feld zu erstellen

private String field;

Eclipse hebt die Variable automatisch hervor, indem Sie den Cursor über Ihrer neuen Variablen positionieren und Strg + 1 drücken. Anschließend erhalten Sie das Menü zum Erstellen von Getter und Setter.

Ich drücke Strg + 1, weil es etwas intelligenter ist, was ich denke, dass Sie als nächstes wollen.

David Chiew
quelle
5

Drücken Sie Alt + Umschalt + S + R ... und wählen Sie dann nur alle Felder aus, die Sie zum Generieren von Gettern oder Setzern oder beidem benötigen

Sagar Sawant
quelle
5
  • Für alle Variablen ALT + UMSCHALT + S Dann R und für alle auswählen Drücken Sie ALT + A.

  • Für Einzelvariable Zeigen Sie mit dem Mauszeiger auf die Variable auf STRG + 1 und wählen Sie die zweite Option aus den Vorschlägen

Bildschirmfoto

Rohit Mewada
quelle
Danke, das habe ich gesucht.
Shams Nahid
4

Es gibt ein Open-Source-Glas, das als Lombok bekannt ist. Fügen Sie einfach ein Glas hinzu und kommentieren Sie Ihr POJO mit @Getter & @Setter. Dadurch werden automatisch Getter und Setter erstellt.

Abgesehen davon können wir andere Funktionen wie @ToString , @EqualsAndHashCode und ziemlich andere coole Sachen verwenden, die Vanille-Code aus Ihrer Anwendung entfernen

Rajadilipkolli
quelle
3

Eclipse> Quelle> Getter und Setter generieren

user2332195
quelle
3

** In Eclipse Ide

um sowohl Setter als auch Getter zu generieren -> alt + shift + s + r dann Alt A und dann auf ok klicken;

um nur Getter zu generieren -> alt + shift + s + r, dann g drücken und dann auf ok klicken;

um nur Setter zu erzeugen -> alt + shift + s + r, dann l drücken und dann auf ok klicken; **

abhinav
quelle
2

Klicken Sie mit der rechten Maustaste auf die Eigenschaft, für die Sie den Getter und die Setter generieren möchten, und wählen Sie

Source -> Generate Getters and Setters...
Eduardo Dennis
quelle
2

1) Gehen Sie zu Windows-> Einstellungen-> Allgemein-> Tasten

2) Wählen Sie command" Getters and Setter generieren ".

3) In der Binding, drücken Sie die Verknüpfung zu wie zu verwenden (wie Alt + Shift + G )

4) Klicken Sie auf Übernehmen und los geht's

Prateek Joshi
quelle
1
  1. Öffnen Sie die Klassendatei in Eclipse
  2. Doppelklicken Sie auf den Klassennamen oder markieren Sie ihn
  3. Navigieren Sie dann zu Quelle -> Code einfügen
  4. Klicken Sie auf Getter und Setter

Es öffnet sich ein Popup, in dem Sie die Felder auswählen, für die Getter / Setter-Methoden generiert werden sollen. Wählen Sie die Felder aus und klicken Sie auf "Generieren". Geben Sie hier die Bildbeschreibung einGeben Sie hier die Bildbeschreibung ein

Vallabha Vamaravelli
quelle
1

Verwenden Sie Project Lombok oder besser Kotlin für Ihre Pojos.

(Auch um Kotlin zu Ihrem Lebenslauf hinzuzufügen;))

Dies :

public class BaseVO {
    protected Long id;

    @Override
    public boolean equals(Object obj) {
        if (obj == null || id == null)
            return false;

        if (obj instanceof BaseVO)
            return ((BaseVO) obj).getId().equals(id);

        return false; 
    }

    @Override
    public int hashCode() {
        return id == null ? null : id.hashCode();
    }
    // getter setter here
}

public class Subclass extends BaseVO {
    protected String name;
    protected String category;
    // getter setter here
}

würde dies werden:

open class BaseVO(var id: Long? = null) {

    override fun hashCode(): Int {
        if (id != null)
            return id.hashCode()

        return super.hashCode()
    }

    override fun equals(other: Any?): Boolean {
        if (id == null || other == null || other !is BaseVO)
            return false

        return id.hashCode() == other.id?.hashCode()
    }
}

@Suppress("unused")
class Subclass(
        var name: String? = null,
        var category: String? = null
) : BaseVO()

Oder verwenden Sie Kotlins "Daten" -Klassen. Am Ende schreiben Sie noch weniger Codezeilen.

Wolf359
quelle