2013-06-11 29 views
11

Đối với các lớp chung, tôi thường thích các phương thức tĩnh thay vì các hàm tạo để tránh các tham số kiểu thừa dự phòng (ví dụ dưới đây để làm rõ).Hoàn thành tự động Eclipse với các lớp chung và các phương thức tĩnh

Nhưng khi sử dụng hoàn thành tự động, Eclipse luôn cho thấy các tham số loại, như:

example (ctrl + space) Example<T>

sau đó tôi phải loại bỏ các <T> bằng tay và thay vào đó thêm phương pháp tĩnh của tôi, giống như Example.new(). Có một khả năng để thay đổi hành vi này hoặc một phím tắt thuận tiện hoàn toàn khác nhau cho một quy trình làm việc tốt hơn? (Tôi vẫn đang làm việc với Eclipse 3, đã này được thay đổi trong 4?)

static final class Example<T> { 

    /** Private, use factory method instead. */ 
    private Example() { 
    } 

    public static <T> Example<T> create() { 
     return new Example<T>(); 
    } 
} 

public static void main(String[] args) { 
    Example<Integer> example = Example.create(); 
} 

Trả lời

1

Nếu ngay sau khi nhấn (ctrl-dấu cách), bạn nhấn phím xóa lùi hai lần, Eclipse sẽ loại bỏ toàn bộ mệnh đề loại đối số. Điều này đã được triển khai để giải quyết https://bugs.eclipse.org/bugs/show_bug.cgi?id=301990.

Nó không hoàn hảo - Tôi thà eclipse chỉ thêm các loại đối số khoản khi tên loại là trước bởi mới, nhưng nó ít nhất là làm cho nó quản lý được.

+0

Cảm ơn, điều này có vẻ khá mới mẻ! Tuy nhiên, tôi cho rằng liên kết bạn đăng là một vấn đề hoàn toàn khác? – qqilihq

+0

vấn đề là https://bugs.eclipse.org/bugs/show_bug.cgi?id=301990 – daus

3

Tôi nghĩ đó là một lỗi trong nhật thực như đã thấy ở đây Auto complete inserts type parameter placeholders too aggressively

Và bạn có thể có một cái nhìn lúc này nó có thể giúp bạn Eclipse and Generic Types

+0

Cảm ơn bạn đã liên kết vé, vì vậy tôi ít nhất có thể theo dõi mọi tin tức về vấn đề đó! – qqilihq

+0

Bạn có tìm thấy giải pháp nào cho vấn đề của mình không? – Pierrick

+1

Không, vẫn còn làm phiền tôi (bên cạnh những thứ khác). Nhưng cuối cùng tôi đã mua một giấy phép của IntelliJ và cuối cùng sẽ thực hiện chuyển đổi. – qqilihq

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