2012-07-03 39 views
8

"Tham chiếu đến các đối tượng theo giao diện của chúng" là một thực hành tốt, như đã đề cập trong Java hiệu dụng. Vì vậy, ví dụ tôi thíchTự động điền cho các kiểu chung trong Eclipse

List<String> al = new ArrayList<String>(); 

qua

ArrayList<String> al = new ArrayList<String>(); 

trong mã của tôi. Một điều phiền toái là nếu tôi gõ ArrayList<String> al = new và sau đó nhấn Ctrl + Space trong Eclipse, tôi sẽ nhận được ArrayList<String>() làm bản sao. Nhưng nếu tôi gõ List al = new và sau đó nhấn Ctrl + Space i sẽ chỉ nhận được propostal để xác định lớp bên trong vô danh, nhưng không phải propostals như new ArrayList<String>(), 99% là gì, hoặc ví dụ mới Vector<String>().

Câu hỏi: Có cách nào để nhận các lớp con làm propostals cho các loại chung không?

+1

Sẽ quá táo bạo khi đề xuất "Sử dụng ổi và' Lists.newArrayList() '? –

+1

tất nhiên là tốt, nhưng thực sự tôi muốn nhận tất cả các lớp con không chỉ cho danh sách – AvrDragon

+1

@JonSkeet Bạn sẽ thêm một phụ thuộc mới (tôi có nghĩa là bạn vẫn muốn thêm nó vào, nhưng giả sử không) chỉ để thay đổi 'new ArrayList <>()' thành 'Lists.newArrayList()'? –

Trả lời

9

Tôi khuyên bạn chỉ cần viết biểu thức trước và sau đó nhấn Ctrl+2, L. Sau đó, bạn có thể đặt tên biến, theo sau là Enter, Down, Enter. Làm xong.

+0

Nhưng có vẻ như điền vào kiểu biến là 'ArrayList' thay vì' List' chẳng hạn (như vậy bạn nhận được kết quả tương tự) –

+0

@PaulBellora: Bạn đã bỏ lỡ chuỗi khóa, chọn đề xuất thứ hai trong danh sách các loại được đề xuất cho variabl e. Và đó nên là Danh sách, nơi ArrayList sẽ là người đầu tiên. – Bananeweizen

+0

@Bananeweizen - Bạn nói đúng Tôi đã bỏ lỡ điều đó - cảm ơn. +1 –

2

Tùy thuộc vào phong cách cá nhân của bạn bằng văn bản mã như vậy, đây là một thay thế lấy cảm hứng từ câu trả lời của @Ben Schulz. Nếu bạn thường viết các bài tập đầu tiên như

al = new ArrayList<String>(); 

sau đó bạn có thể sử dụng Ctrl+1 để bắt đầu "Tạo biến cục bộ" sửa chữa nhanh chóng. Nhấn Tab bây giờ sẽ trực tiếp mở lựa chọn loại nơi bạn chọn loại List.

2

JDK 1.7 không cần chỉ định loại chung ở bên phải bằng nhau. Tùy chọn -> Java -> Trình biên dịch cho 1,6

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