Có cách nào để tự động tạo getters và setters trong Eclipse không?


256

Tôi đang làm việc trên một Androiddự án mới ( Java) và tạo một Object với số lượng lớn các biến. Vì tôi đang dự định thêm getters và setters cho tất cả chúng, tôi đã tự hỏi: có lối tắt nào Eclipseđể tự động tạo getters và setters trong một lớp nhất định không?


1
Nghe có vẻ như một kẻ theo dõi tôi ... Tôi chỉ quen làm tất cả các chương trình Java mà không có IDE, vì vậy sử dụng Eclipse vẫn còn tương đối mới đối với tôi.
Phil

3
@krio - Cả thế giới không sử dụng Eclipse cho nhà phát triển Java. Tôi đã làm hầu hết công việc của mình ở IntelliJ và thấy mình đã hỏi rất nhiều câu hỏi như thế này khi tôi bắt đầu làm việc trong Eclipse.
vcsjones

1
@Phil, vcsjones - rất đúng lời xin lỗi của tôi nhưng hãy kiểm tra điều này, - google.comauau - Tôi đoán stackoverflow nói rằng nghiên cứu rất quan trọng
TeaCupApp

2
Đó là cách nhanh nhất: ctrl + 3 ggas
dellasavia

1
@Konstantin chỉ nói rằng tránh sử dụng chúng trong cùng một lớp, vì vậy đừng gọi this.getCount(), khi bạn chỉ có thể tham khảo this.mCount. Mặc dù nó có thể là một hoạt động tốn kém hơn, nhưng nó là một cách tiếp cận sạch hơn để cung cấp quyền truy cập vào các biến của các đối tượng khác thông qua getters và setters.
Phil

Câu trả lời:


357

Đưa ra menu ngữ cảnh (tức là nhấp chuột phải) trong cửa sổ mã nguồn của lớp mong muốn. Sau đó chọn Sourcemenu con; từ menu đó chọn Generate Getters and Setters...sẽ làm cho một cửa sổ wizard xuất hiện.

Source -> Generate Getters and Setters...

Chọn các biến bạn muốn tạo getters và setters cho và nhấp OK.


Chỉ có 'Tạo bình luận thành phần', không có Getters và Setters. Tôi đang sử dụng Eclipse 4.4.0, đã cài đặt plugin PDT. Trong khi đó, điều này có thể được sử dụng - mikeangstadt.name/projects/getter-setter-gen .
Xdg

Hoạt động tuyệt vời trên phiên bản Eclipse Mars.2 (4.5.2). Cảm ơn.
this.user3272243

Cảm ơn bạn đã tiết kiệm cho tôi khoảng một triệu năm tedium!
Jay Edwards

11
Bạn cũng có thể truy cập menu con này bằng phím tắt SHIFT+ ALT+ S, sau đó mở tùy chọn Tạo Getters và Setters bằng cách nhấn R.
Rosa

Thật buồn cười là câu trả lời của tôi ở đây trở nên phổ biến như thế nào, nhưng ngày nay tôi sẽ chỉ sử dụng Lombok , như những người khác lưu ý dưới đây.
Hagai Cibulski

70

Trong Eclipse Juno, theo mặc định, ALT + SHIFT + S, R mở hộp thoại getter / setter. Lưu ý bạn phải nhấn cả 4 phím.


5
Bạn có thể bỏ phần SHIFT và chỉ cần thực hiện ALT + S, R.
Jason Wheeler

2
Bạn không thể rời khỏi SHIFTEclipse Kepler
yellavon

Bạn có thể bỏ qua SHIFTOxy Eclipse.
Jake Reece

Bạn không thể rời khỏi SHIFTEclipse 2018-12.
Neph


41

Tất cả các câu trả lời khác chỉ tập trung vào cấp độ IDE, đây không phải là cách hiệu quả và thanh lịch nhất để tạo ra getters và setters. Nếu bạn có hàng chục thuộc tính, các phương thức getters và setters có liên quan sẽ làm cho mã lớp của bạn rất dài dòng.

Cách tốt nhất mà tôi từng sử dụng để tạo getters và setters tự động là sử dụng các chú thích lombok dự án trong dự án java của bạn , lombok.jar sẽ tạo phương thức getter và setter khi bạn biên dịch mã java.

Bạn chỉ cần tập trung vào việc đặt tên và định nghĩa các thuộc tính lớp, lombok sẽ làm phần còn lại. Điều này là dễ dàng để duy trì mã của bạn.

Ví dụ: nếu bạn muốn thêm phương thức getter và setter cho agebiến, bạn chỉ cần thêm hai chú thích lombok:

@Getter @Setter 
public int age = 10;

Điều này tương đương với mã như thế:

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

Bạn có thể tìm thêm chi tiết về lombok tại đây: Project Lombok


1
Đó là nó! Cảm ơn rât nhiều! Trên thực tế, câu trả lời của bạn nên được đặt lên hàng đầu, vì lombok là giải pháp thực sự duy nhất để tránh nhìn thấy tất cả các mã Java soạn sẵn mà người ta sẽ phải tạo hoặc viết. Cảm ơn!
Stefan Endrullis

2
Project Lombok (hoặc ít nhất là ý tưởng) nên là một phần của Java 11. Tôi chỉ sử dụng Kotlin cho các lớp Pojo để thoát khỏi thế hệ setter getter: /
Wolf359

31

Cách để tạo Getters & Setters -

1) Nhấn Alt+ Shift+ S, sau đóR
2) Nhấp chuột phải -> Nguồn -> Tạo Getters & Setters
3) Chuyển đến menu Nguồn -> Tạo Getters & Setters
4) Chuyển đến menu Windows -> Tùy chọn -> Chung -> Phím (Viết Tạo Getters & Setters trên trường văn bản)
5) Nhấp vào bóng đèn lỗi của trường -> tạo getters & setters ...
6) Nhấn Ctrl+3 và viết getters & setters trên trường văn bản sau đó chọn tùy chọn Tạo Getters & Setters

nếu Mac OS nhấn Alt + cmd + S thì chọn Getters & Setters


2
Tôi nghĩ rằng 1 cách này dễ hơn một chút theo cách này: 1) Nhấn Alt + Shift + S, sau đó R
Paco Abato

1
Nhấn Ctrl-3 và trực tiếp sau đó gõ "getter" bị thiếu trong danh sách. Dễ nhớ hơn nhiều so với các phím tắt cụ thể, vì điều này hoạt động cho mọi lệnh, chế độ xem, v.v.
Tuneweizen

@ Tuneweizen - Cảm ơn
Deepak Gupta

11

Nhấp chuột phải-> tạo getters và setters thực hiện công việc tốt nhưng nếu bạn muốn tạo một phím tắt trong nhật thực trong cửa sổ, bạn có thể làm theo các bước sau:

  1. Chuyển đến Cửa sổ> Tùy chọn
  2. Chuyển đến Chung> Phím
  3. Danh sách "Hỗ trợ nhanh - Tạo getter / setter cho trường"
  4. Trong trường văn bản "Binding" bên dưới, giữ các phím mong muốn (trong trường hợp của tôi, tôi sử dụng ALT + SHIFT + G)
  5. Nhấn Áp dụng và Ok
  6. Bây giờ trong trình soạn thảo Java của bạn, chọn trường bạn muốn tạo phương thức getter / setter và nhấn phím tắt bạn thiết lập ở Bước 4. Nhấn ok trong cửa sổ này để tạo phương thức.

Hi vọng điêu nay co ich!


9

Chắc chắn rồi.

Sử dụng Tạo Getters và Setters từ menu Nguồn hoặc menu ngữ cảnh trên trường hoặc loại đã chọn hoặc chọn văn bản trong một loại để mở hộp thoại. Hộp thoại Tạo Getters và Setters hiển thị getters và setters cho tất cả các trường của loại đã chọn. Các phương thức được nhóm theo các trường của loại.

Hãy xem tài liệu trợ giúp để biết thêm thông tin.


8

Đúng. Nhấp chuột phải vào mã và bạn thấy một menu bật lên; có "Nguồn", "Tạo Getters và Setters" bên cạnh nó bạn có thể thấy phím tắt, đó là Alt + Shift + S và R trên hệ thống của tôi.

Tương tự, bạn có thể điều hướng đến các menu con khác trong menu chính đó, bằng cách nhập phím tắt thích hợp, bạn đi thẳng menu con thay vì menu ngữ cảnh chính, sau đó có thể chọn từ menu hoặc nhập một chữ cái khác để chọn từ danh sách.



7

Tôi thích tạo trường riêng trước

private String field;

Eclipse sẽ tự động làm nổi bật biến, bằng cách định vị con trỏ trên biến mới của bạn, nhấn Ctrl + 1. Sau đó, nó sẽ cung cấp cho bạn menu để tạo getter và setter.

Tôi nhấn Ctrl + 1 vì nó thông minh hơn một chút về những gì tôi nghĩ bạn muốn tiếp theo.


5

Nhấn Alt + Shift + S + R ... và sau đó chỉ chọn tất cả các trường bạn phải tạo Getters hoặc Setters hoặc cả hai


5
  • Đối với Tất cả biến ALT + SHIFT + S Sau đó R và để chọn tất cả Nhấn ALT + A

  • Đối với con trỏ Điểm đơn biến trên biến, sau đó nhấn CTRL + 1 và chọn tùy chọn thứ hai từ các đề xuất

Ảnh chụp màn hình


Cảm ơn bạn, đây là những gì tôi đang tìm kiếm.
Shams Nahid

4

Có một jar nguồn mở có sẵn là Lombok , bạn chỉ cần thêm jar và sau đó chú thích POJO của bạn với @Getter & @Setter, nó sẽ tự động tạo ra getters và setters.

Ngoài ra, chúng tôi có thể sử dụng các tính năng khác như @ToString , @EqualsAndHashCode và những thứ hay ho khác giúp loại bỏ mã vanilla khỏi ứng dụng của bạn



3

** Trong Ide Eclipse

để tạo cả setters và getters -> alt + shift + s + r rồi Alt A sau đó nhấp vào ok;

để chỉ tạo getters -> alt + shift + s + r sau đó nhấn g sau đó nhấp vào nút ok;

để chỉ tạo setters -> alt + shift + s + r sau đó nhấn l sau đó nhấp vào nút ok; **


2

Nhấp chuột phải vào thuộc tính bạn muốn tạo getter và setters cho và chọn

Source -> Generate Getters and Setters...

2

1) Chuyển đến Windows-> Tùy chọn-> Chung-> Phím

2) Chọn command" Tạo Getters và Setters "

3) Trong Binding, nhấn phím tắt để sử dụng (như Alt + Shift + G )

4) Nhấp vào áp dụng và bạn tốt để đi


1
  1. Mở tệp lớp trong Eclipse
  2. Nhấp đúp chuột vào tên lớp hoặc tô sáng nó
  3. Sau đó điều hướng đến Nguồn -> Chèn mã
  4. Nhấp vào Getter và Setter

Nó mở một cửa sổ bật lên để chọn các trường mà các phương thức getter / setter sẽ được tạo. Chọn các trường và nhấp vào nút "Tạo". nhập mô tả hình ảnh ở đâynhập mô tả hình ảnh ở đây


1

Sử dụng Project Lombok hoặc Kotlin tốt hơn cho Pojos của bạn.

(Ngoài ra, để thêm Kotlin vào sơ yếu lý lịch của bạn;))

Điều này :

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
}

sẽ trở thành thế này:

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

Hoặc sử dụng các lớp "dữ liệu" của Kotlin. Bạn cuối cùng đã viết ít dòng mã hơn.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.