"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?
Sẽ quá táo bạo khi đề xuất "Sử dụng ổi và' Lists.newArrayList() '? –
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
@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()'? –