Apakah ada cara untuk secara otomatis menghasilkan getter dan setter di Eclipse?

256

Saya mengerjakan Androidproyek baru ( Java), dan membuat Objek dengan sejumlah besar variabel. Karena saya berencana untuk menambah getter dan setter untuk mereka semua, saya bertanya-tanya: apakah ada jalan pintas Eclipseuntuk secara otomatis menghasilkan getter dan setter di kelas tertentu?

Phil
sumber
1
Kedengarannya seperti penguntit bagi saya ... Saya hanya terbiasa melakukan semua pemrograman Java tanpa IDE, jadi menggunakan Eclipse masih relatif baru bagi saya.
Phil
3
@ krio - Seluruh dunia tidak menggunakan Eclipse untuk pengembang Java. Saya melakukan sebagian besar pekerjaan saya di IntelliJ, dan mendapati diri saya mengajukan banyak pertanyaan seperti ini begitu saya mulai bekerja di Eclipse.
vcsjones
1
@Phil, vcsjones - benar-benar permintaan maaf saya tetapi coba lihat ini, - google.com.au/… - Saya kira stackoverflow mengatakan penelitian itu penting
TeaCupApp
2
itu cara tercepat: ctrl + 3
gga
1
@Konstantin yang hanya mengatakan untuk menghindari menggunakannya di kelas yang sama, jadi jangan menelepon this.getCount(), ketika Anda bisa referensi saja this.mCount. Walaupun ini mungkin operasi yang lebih mahal, ini adalah pendekatan yang lebih bersih untuk menyediakan akses ke variabel objek lain melalui getter dan setter.
Phil

Jawaban:

357

Buka menu konteks (yaitu klik kanan) di jendela kode sumber dari kelas yang diinginkan. Kemudian pilih Sourcesubmenu; dari menu itu memilih Generate Getters and Setters...akan menyebabkan jendela wizard muncul.

Source -> Generate Getters and Setters...

Pilih variabel yang ingin Anda buat getter dan setter untuk dan klik OK.

Hagai Cibulski
sumber
Hanya ada 'Generate Element Comment', tidak ada Getters and Setters. Saya menggunakan Eclipse 4.4.0, plugin PDT diinstal. Sementara ini, ini dapat digunakan - mikeangstadt.name/projects/getter-setter-gen .
Xdg
Berfungsi bagus di Eclipse Mars.2 Release (4.5.2). Terima kasih.
this.user3272243
Terima kasih telah menyelamatkan saya sekitar satu juta tahun kebosanan!
Jay Edwards
11
Anda juga dapat mengakses submenu ini dengan pintasan keyboard SHIFT+ ALT+ S, dan kemudian buka opsi Generate Getters and Setters dengan menekan R.
Rosa
Lucu bagaimana jawaban saya di sini menjadi sangat populer, tetapi hari ini saya hanya akan menggunakan Lombok , seperti dicatat oleh orang lain di bawah ini.
Hagai Cibulski
70

Di Eclipse Juno, secara default, ALT + SHIFT + S, R membuka kotak dialog pengambil / penyetel. Catatan Anda harus menekan semua 4 tombol.

RoboAlex
sumber
5
Anda dapat meninggalkan bagian SHIFT dan hanya melakukan ALT + S, R juga.
Jason Wheeler
2
Anda tidak bisa meninggalkan SHIFTEclipse Kepler
yellavon
Anda dapat meninggalkan SHIFTEclipse Oxygen.
Jake Reece
Anda tidak dapat meninggalkan SHIFTdi Eclipse 2018-12.
Neph
69

Right click -> Source -> Generate setters and getters

Tetapi untuk membuatnya lebih nyaman, saya selalu memetakan ini ke ALT + SHIFT+ GdariWindows -> Preferences -> General -> Keys

Bozho
sumber
2
Sangat berguna! Saya menggunakan pemetaan kunci yang sama.
Carlosngel Carlos del Pozo Muela
41

Semua jawaban lain hanya fokus pada level IDE, ini bukan cara yang paling efektif dan elegan untuk menghasilkan getter dan setter. Jika Anda memiliki puluhan atribut, metode getter dan setter yang relevan akan membuat kode kelas Anda sangat verbose.

Cara terbaik yang pernah saya gunakan untuk menghasilkan getter dan setter secara otomatis adalah menggunakan anotasi proyek lombok di proyek java Anda , lombok.jar akan menghasilkan metode pengambil dan penyetel saat Anda menyusun kode java.

Anda hanya fokus pada penamaan atribut / variabel kelas dan definisi, lombok akan melakukan sisanya. Ini mudah untuk mempertahankan kode Anda.

Misalnya, jika Anda ingin menambahkan metode pengambil dan penyetel untuk agevariabel, Anda cukup menambahkan dua anotasi lombok:

@Getter @Setter 
public int age = 10;

Ini sama dengan kode seperti itu:

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

Anda dapat menemukan rincian lebih lanjut tentang lombok di sini: Proyek Lombok

dongpf
sumber
1
Itu dia! Terima kasih banyak! Sebenarnya, jawaban Anda harus di atas, karena lombok adalah satu-satunya solusi yang benar untuk menghindari melihat semua kode Java boilerplate satu harus menghasilkan atau menulis. Terima kasih!
Stefan Endrullis
2
Proyek Lombok (atau setidaknya idenya) harus menjadi bagian dari Jawa 11. Saya menggunakan Kotlin untuk kelas Pojo hanya untuk menghindari generasi pengambil pengambil: /
Wolf359
31

Cara untuk Menghasilkan Setter & Setter -

1) Tekan Alt+ Shift+ S, laluR
2) Klik kanan -> Sumber -> Hasilkan Getters & Setters
3) Buka menu Sumber -> Hasilkan Getters & Setters
4) Buka menu Windows -> Preferensi -> Umum -> Kunci (Tulis Hasilkan Getters & Setter pada bidang teks)
5) Klik pada bulb kesalahan bidang -> buat getter & setter ...
6) Tekan Ctrl+3 dan tulis getter & setter pada bidang teks kemudian pilih opsi Hasilkan Setter & Setter

jika Mac OS tekan Alt + cmd + S, lalu pilih Getters & Setters

Deepak Gupta
sumber
2
Saya pikir 1 ini sedikit lebih mudah dengan cara ini: 1) Tekan Alt + Shift + S, lalu R
Paco Abato
1
Menekan Ctrl-3 dan langsung setelah itu mengetik "getter" tidak ada dalam daftar. Jauh lebih mudah diingat daripada pintasan tertentu, karena ini berfungsi untuk setiap perintah, tampilan, dan sebagainya.
Bananeweizen
@ Bananeweizen - Terima kasih
Deepak Gupta
11

Klik kanan-> hasilkan getter dan setter melakukan pekerjaan dengan baik tetapi jika Anda ingin membuat pintasan keyboard di gerhana di windows, Anda dapat mengikuti langkah-langkah berikut:

  1. Buka Jendela> Preferensi
  2. Pergi ke Umum> Kunci
  3. Daftar untuk "Bantuan Cepat - Buat pengambil / penyetel untuk bidang"
  4. Dalam bidang teks "Binding" di bawah ini, tahan tombol yang diinginkan (dalam kasus saya, saya menggunakan ALT + SHIFT + G)
  5. Tekan Apply dan Ok
  6. Sekarang di editor Java Anda, pilih bidang yang Anda inginkan untuk membuat metode pengambil / penyetel dan tekan pintasan yang Anda siapkan di Langkah 4. Tekan ok di jendela ini untuk membuat metode.

Semoga ini membantu!

sufinawaz
sumber
9

Tentu.

Gunakan Generate Getters and Setters dari menu Source atau menu konteks pada bidang atau jenis yang dipilih, atau pilihan teks dalam jenis untuk membuka dialog. Dialog Generate Getters and Setters menampilkan getter dan setters untuk semua bidang dari tipe yang dipilih. Metode dikelompokkan berdasarkan bidang tipe.

Lihatlah dokumentasi bantuan untuk informasi lebih lanjut.

vcsjones
sumber
8

Iya. Klik kanan pada kode dan Anda melihat menu muncul; di sana "Sumber", "Hasilkan Getters and Setters" dan di sebelahnya Anda dapat melihat pintasannya, yaitu Alt + Shift + S dan R pada sistem saya.

Demikian pula Anda dapat menavigasi ke submenu lain di menu utama itu, dengan mengetikkan jalan pintas yang sesuai Anda langsung menuju submenu alih-alih menu konteks utama, dan kemudian dapat memilih dari menu atau mengetik huruf lain untuk memilih dari daftar.

Zds
sumber
8

Pada Mac OS , Alt+Cmd+Slalu pilih "... Getters and Setters"

Alexander Volkov
sumber
7

Saya lebih suka membuat bidang pribadi terlebih dahulu

private String field;

Eclipse akan secara otomatis menyorot variabel, dengan memposisikan kursor di atas variabel baru Anda, tekan Ctrl + 1. Ini akan memberi Anda menu untuk Membuat pengambil dan penyetel.

Saya menekan Ctrl + 1 karena sedikit lebih cerdas tentang apa yang saya pikir Anda inginkan selanjutnya.

David Chiew
sumber
5

Tekan Alt + Shift + S + R ... dan kemudian hanya pilih semua bidang yang harus Anda hasilkan Getters atau Setters atau keduanya

Sagar Sawant
sumber
5
  • Untuk Semua variabel ALT + SHIFT + S Lalu R dan untuk memilih semua Tekan ALT + A

  • Untuk Kursor titik variabel tunggal pada variabel, lalu tekan CTRL + 1 dan pilih opsi kedua dari saran

ScreenShot

Rohit Mewada
sumber
Terima kasih, ini yang saya cari.
Shams Nahid
4

Ada toples open source yang dikenal sebagai Lombok , Anda tinggal menambahkan toples dan kemudian membubuhi keterangan POJO Anda dengan @Getter & @Setter itu akan membuat getter dan setter secara otomatis.

Selain itu, kita dapat menggunakan fitur lain seperti @ToString , @EqualsAndHashCode dan hal-hal keren lainnya yang menghilangkan kode vanilla dari aplikasi Anda

rajadilipkolli
sumber
3

Eclipse> Sumber> Hasilkan Getters and Setters

pengguna2332195
sumber
3

** Dalam Eclipse Ide

untuk menghasilkan setter dan getter -> alt + shift + s + r lalu Alt A lalu klik ok;

hanya untuk menghasilkan getter -> alt + shift + s + r lalu tekan g lalu klik tombol ok;

hanya untuk menghasilkan setter -> alt + shift + s + r lalu tekan l lalu klik tombol ok; **

abhinav
sumber
2

Klik kanan pada properti yang Anda inginkan untuk menghasilkan pengambil dan setter untuk dan pilih

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

1) Pergi ke Windows-> Preferensi-> Umum-> Kunci

2) Pilih command" Hasilkan Getters and Setters "

3) Di Binding, tekan pintasan yang ingin digunakan (seperti Alt + Shift + G )

4) Klik berlaku dan Anda siap melakukannya

Prateek Joshi
sumber
1
  1. Buka file kelas di Eclipse
  2. Klik dua kali pada nama kelas atau sorot
  3. Kemudian arahkan ke Sumber -> Sisipkan Kode
  4. Klik pada Getter dan Setter

Ini membuka popup untuk memilih bidang yang metode pengambil / penyetel dihasilkan. Pilih bidang dan klik tombol "Hasilkan". masukkan deskripsi gambar di sinimasukkan deskripsi gambar di sini

Vallabha Vamaravelli
sumber
1

Gunakan Project Lombok atau Kotlin yang lebih baik untuk Pojo Anda.

(Juga, untuk menambahkan Kotlin ke resume Anda;))

Ini:

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
}

akan menjadi ini:

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()

Atau gunakan kelas "data" Kotlin. Anda akhirnya menulis lebih sedikit baris kode.

Wolf359
sumber