2009-11-24 38 views
16

Khi tôi viết mã nhật thực, tôi thích càng lười càng tốt. Vì vậy, tôi thường xuyên nhập một cái gì đó như:Tôi có thể tạo các trường tự động trong nhật thực từ một hàm tạo không?

myObject = new MyClass (myParam1, myParam2, myParam3);

Mặc dù MyClass không tồn tại và cũng không phải hàm tạo của nó. Một vài cú nhấp chuột sau đó và nhật thực đã tạo ra MyClass với một constructor suy ra từ những gì tôi đã gõ. Câu hỏi của tôi là, nó có thể cũng nhận được nhật thực để tạo ra các lĩnh vực trong lớp tương ứng với những gì tôi đã thông qua để các nhà xây dựng? Tôi nhận ra đó là siêu lười biếng, nhưng đó là toàn bộ niềm vui của nhật thực!

Trả lời

28

Nếu bạn có một lớp A.

class A{ 
    A(int a |){} 
} 

| là con trỏ. Crtl + 1"tham số assign đến lĩnh vực mới"

Kết quả:

class A{ 
    private final int a; 
    A(int a){ 
     this.a = a; 
    } 
} 

Điều này cũng làm cho các phương pháp:

void method(int b){} 

sẽ dẫn đến:

private int b; 
    void method(int b){ 
     this.b = b; 

    } 
+0

Chúc mừng, đây chính xác là những gì tôi đang tìm kiếm. – Benj

+1

Con người, tôi yêu Eclipse. Cảm ơn! +1 –

+2

Cách sử dụng tính năng này với nhiều trường? Ví dụ nếu tôi có 5 trường và tôi muốn tạo trường này chỉ trong một lần di chuyển – pleerock

4

Tôi biết bạn có thể làm theo cách khác. Xác định các lĩnh vực và để cho Eclipse tạo ra một constructor sử dụng các lĩnh vực này dành cho bạn: Source | Generate Constructor using Fields

+0

Rất hữu ích, tôi chắc chắn tôi sẽ sử dụng điều này mặc dù nó không hoàn toàn là những gì tôi đã làm hôm nay. – Benj

0

Từ Eclipse Neon nó có thể gán tất cả các tham số cho các trường.

Sử dụng nhanh chóng hỗ trợ Ctrl + nó đề nghị Assign all parameters to new fields. Bạn có thể gọi hỗ trợ nhanh nếu con trỏ ở bất kỳ vị trí nào giữa dấu ngoặc đơn của hàm tạo.

Tùy chọn này cũng có sẵn cho các phương pháp.

source

Các vấn đề liên quan