Cách tự động tạo getters và setters trong Android Studio


294

Có một lối tắt trong Android Studio để tự động tạo getters và setters trong một lớp nhất định không?

Câu trả lời:


522

Sử dụng Alt+ Insertcho Windows hoặc Command+ Ncho Mac trong trình chỉnh sửa, bạn có thể dễ dàng tạo các phương thức getter và setter cho bất kỳ trường nào trong lớp của bạn. Điều này có tác dụng tương tự như sử dụng Thanh Menu -> Code->Generate...

nhập mô tả hình ảnh ở đây

và sau đó sử dụng nút shift hoặc nút điều khiển, chọn tất cả các biến bạn cần để thêm getters và setters


77
Đối với những người trên máy Mac, điều khiển + nhập.
anita

bất kỳ khả năng nào để tạo getter và setter như ivar _username và getter và setter là getUsername và setUsername?
Nicolas Manzini

Trên Mac Control + n
Alon Kogan

2
Để java hoạt động tốt. Nhưng tôi sử dụng kotlin trong studio android để phát triển ứng dụng. Vậy làm thế nào để tạo getter / setter như java?
SIVAKUMAR.J

2
cách tạo getters và setters cho lớp Kotlin
Ashik Azeez


29

Studio Android & OSx :

Nhấn cmd+ n> Generate>Getter and Setter

Studio Android & Windows :

Nhấn Alt+ Insert> Generate>Getter and Setter


Chỉ được thử nghiệm trên Windows Alt + Shift + S + R không hoạt động và nhấp chuột phải không chứa Nguồn. Có lẽ nó là một thiết lập tùy chỉnh?
Anthea

Tôi đã sửa phần Win! :)
Jorgesys

8

Bạn có thể tạo getter và setter bằng các bước sau:

  • Khai báo biến trước.
  • nhấp vào ALT+ Inserttrên bàn phím đặt con trỏ xuống phần khai báo biến
  • Bây giờ chọn constructor và nhấn Ctrl+ Atrên bàn phím và nhấp vào Enterđể tạo constructor.
  • Bây giờ một lần nữa đặt con trỏ ở dòng tiếp theo của hàm đóng, hãy bấm ALT+ INSERTvà chọn getter và setter và nhấn lại CTRL+ Ađể chọn tất cả các biến và nhấn Enter.

Đó là nó. Chúc mừng mã hóa !!


8
  • tạo biến
  • kích chuột phải
  • chọn "Tạo" và sau đó chọn tùy chọn "Getter and Setter"

Menu chuột phải


Bất kỳ lối tắt cho xây dựng kotlin ? Alt + Ins không hiển thị cho tôi tạo tùy chọn Con constructor.
Arbaz.in

Bạn đã thử Alt + Enterchưa
Ângelo Polotto

trong trường hợp đó, tôi không biết chuyện gì đang xảy ra Bạn đã đăng vấn đề của bạn trong diễn đàn Intellij?
Ângelo Polotto

Khi bạn tìm thấy giải pháp, xin vui lòng, chia sẻ nó ở đây.
Ângelo Polotto

8

Studio Android & Windows:

fn+ alt+insert

Hình ảnh của Menu


1
Hình ảnh của bạn đã không xuất hiện chính xác trong bài đăng và bạn chưa hoàn thành mô tả hình ảnh - thông báo 'nhập mô tả hình ảnh vào đây'.
LordWilmore

6

Định vị con trỏ bên dưới các biến -> nhấp chuột phải -> Tạo -> Getter và Setter -> Chọn các biến để thực hiện get và set

hoặc là

Alt + Chèn -> Getter và Setter -> Chọn các biến


Câu hỏi là nếu có thể tạo getters và setters với một phím tắt duy nhất, vì vậy không phải là nơi bạn có thể tìm thấy tùy chọn này trong một menu.
R Pelzer

Tôi không hiểu. Alt + Chèn -> Getter và Setter -> Chọn các biến
Baby

5

Như đã lưu ý ở đây , bạn cũng có thể tùy chỉnh thế hệ getter / setter để lấy tiền tố và hậu tố (ví dụ: m ví dụ biến). Chuyển đến File->Settingsvà mở rộng Code Style, chọn Javavà thêm tiền tố / hậu tố của bạn dưới Code Generationtab.


4

Bạn có thể sử dụng AndroidAccessorsPlugin của Android Studiođể tạo getter và setter mà không có m làm tiền tố cho các phương thức

Vd: mId; Sẽ tạo getId()setId()thay vì getmId()setmId()

ảnh chụp màn hình plugin


4

Câu trả lời này liên quan đến câu hỏi của bạn nhưng không chính xác là câu trả lời cho câu hỏi đó. =) Đó là một thư viện thú vị mà tôi đã tìm ra gần đây và tôi muốn chia sẻ với bạn.


Dự án Lombok có thể tạo ra phương pháp phổ biến, chẳng hạn như thu khí, setters, equals()hashCode(), toString(), cho lớp học của bạn tự động. Nó thay thế chúng bằng các chú thích làm giảm mã soạn sẵn. Để xem một ví dụ hay về mã được viết bằng Lombok, hãy xem video trên trang chính hoặc đọc bài viết này .

Việc phát triển Android với Lombok rất dễ dàng và sẽ không làm cho ứng dụng Android của bạn trở nên 'nặng nề' hơn vì Lombok là một thư viện chỉ có thời gian biên dịch. Điều quan trọng là cấu hình dự án Android của bạn đúng cách.

Một vi dụ khac:

import lombok.Getter;
import lombok.Setter;

public class Profile {

  @Getter @Setter
  private String username;

  @Getter @Setter
  private String password;

}

Phát triển Android với Lombok là có thể. Lombok phải là một phụ thuộc chỉ có thời gian biên dịch, vì nếu không thì toàn bộ Lombok sẽ kết thúc trong các tệp DEX của bạn, gây lãng phí không gian quý giá. Đoạn trích:

dependencies {
    compileOnly "org.projectlombok:lombok:1.16.18"
}

Ngoài ra, bạn có thể muốn thêm plugin Lombok IntelliJ để hỗ trợ các tính năng Lombok trong IDE của bạn tại thời điểm phát triển. Ngoài ra còn có thư viện Hrisey dựa trên Lombok. Nói một cách đơn giản, đó là Lombok + Hỗ trợ tuyệt vời.


1
Thật không may, Project Lombok phá vỡ các dự án thư viện Android. Nó không đáng tin cậy ngay bây giờ.
IgorGanapolsky

1
@IgorGanapolsky có bằng chứng nào không?
Artem Novikov

1
@IgorGanapolsky Project Lombok hoạt động tốt với Android. Xem hướng dẫn thiết lập .
naXa

3

Sử dụng Ctrl+ Entertrên Mac để nhận danh sách các tùy chọn để tạo setter, getter, constructor, v.v.

nhập mô tả hình ảnh ở đây


2

sử dụng hộp thoại code => created => getter () và setter (), chọn tất cả các biến, tạo tất cả các phương thức getter (), setter () cùng một lúc.


1

Một cách hài hước khác

Nhập tên tham số bất cứ nơi nào trong đối tượng sau khi định nghĩa, bạn sẽ thấy setter và getter, Chỉ cần chọn và nhấp enter :)

Tôi đã thử với Android Studio 2.3


-1

Nhấp chuột phải vào Editorsau đó Chọn Source -> Generate Getters and Settershoặc nhấn Alt+ Shift+S nhập mô tả hình ảnh ở đây


2
Đây là Nhật thực. Anh ta yêu cầu Android Studio.
WannaGetHigh 12/08/2015

-2

Chỉ trong trường hợp ai đó đang làm việc với Eclipse

HĐH Windows 8.1 | Luna nhàn rỗi

Khai báo biến cấp cao nhất private String usernameEclipse vui lòng tạo cảnh báo ở bên trái màn hình của bạn, nhấp vào cảnh báo đó và một vài gợi ý hiển thị, sau đó chọn tạo.nhập mô tả hình ảnh ở đây


1
Câu hỏi được chuyển đến Android Studio, không phải nhật thực
Alberto M
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.