2012-01-27 53 views
37

Tôi đã tạo một giao diện, với khoảng 30 phương pháp và được triển khai trong 30 lớp.IntelliJ có thể thêm @Overrrides vào tất cả các phương thức của một giao diện cụ thể không?

Tôi muốn thêm @Override vào từng triển khai, nhưng tôi không muốn làm điều đó bằng tay.

IntelliJ có thể giúp tôi như thế nào? giao diện

trông như thế này: Mã

public interface PreviewObjectTests { 
    void testGetName(); 
    void testGetType(); 
    //... 30 similar methods 
} 

thực hiện:

public class PreviewObjectAccountTest implements PreviewObjectTests { 

    //I want to add @Override here! 
    @Test public void testGetName() { 
     assertThat(...); 
    } 

    //I want to add @Override here! 
    @Test public void testGetType() { 
     assertThat(...); 
    } 

    //...30 similar methods 

} 
+2

dễ thực hiện trong nhật thực, không biết về intellij. – Scorpion

+2

Bạn sẽ làm như thế nào trong Eclipse? Nó có thể hữu ích cho độc giả của câu hỏi này để biết :) –

Trả lời

44

Dễ dàng thực hiện với Alt + Nhập ý định, sau đó nhấn Right arrow cho sub-menu:

Fix all

+0

Thực ra tôi không nhận được gợi ý ý định này trong hồ sơ của tôi. Chỉ có ý định tôi có trong danh sách của tôi là 'Mở rộng thành '@test()''. Mục đích mà bạn đề cập đến chỉ hoạt động trong các tệp lớp sản xuất chứ không phải trong các bài kiểm tra? –

+0

Đảm bảo mức độ ngôn ngữ dự án được đặt thành 1.6 hoặc cao hơn. – CrazyCoder

+0

Cấp độ ngôn ngữ * được đặt * thành '" cấp 6.0 - @Override trong giao diện "'. (Tôi sử dụng intelliJ 11.01 với java 1.6.0_27). –

-1

Tôi đã tìm ra cách để thực hiện điều đó bằng công cụ tìm/thay thế đơn giản.

  1. Đầu tiên tôi đã thay đổi một tên phương pháp để kích tất cả các file thực thi giao diện để thay đổi
  2. Sau đó, tôi tạo ra một phát hiện đơn giản/thay thế để tìm kiếm chỉ trong các tập tin đã thay đổi.

Intellij Add @override for tests in changed files only

này hoạt động trong trường hợp đặc biệt của tôi, bởi vì không có thực sự bất kỳ phương pháp khác trong các tập tin lớp. Tôi sẽ giả định điều này sẽ điên hơn một chút nếu tôi có rất nhiều phương pháp trong các tệp thuộc về các giao diện khác

+1

-1 (mà tôi không thể làm :)) Làm tìm kiếm/thay thế cho điều này là một ý tưởng tồi. –

+0

Tôi đồng ý rằng đó là một ý tưởng tồi, nhưng không có ý tưởng tốt hơn đã đưa ra. May mắn thay, điều này làm việc cho tôi vì cách tôi tổ chức các tập tin thử nghiệm đơn vị của tôi. –

+0

Thay thế văn bản không tốt, bởi vì bạn cần kiểm tra xem phương thức nào thực sự là trọng số và phương thức nào không ghi đè. Và vì tính năng này được tích hợp sẵn trong các IDE Java, tôi không có tùy chọn nào khác ngoài việc bỏ phiếu xuống: '( –

-1

Đó không phải là nhật thực hay ý tưởng đặc biệt. Trình biên dịch của nó specfic và tuân thủ những gì bạn tuân theo. Trong nhật thực của nó 1.6 hoặc cao hơn. Và trong ý tưởng tôi tin rằng nó cho 1,5 hoặc cao hơn.

Trong các trường hợp trên, nó sẽ tự động được kiểm tra lại bởi các IDE tương ứng.

+0

Xin lỗi bạn đời của bạn cho câu trả lời. Câu hỏi đặt ra là tự động sửa lỗi: "Tôi muốn thêm @Override vào từng triển khai , nhưng tôi không muốn làm điều đó bằng tay. " –

36

Đối với IntelliJ:

  1. Kiểm tra xem bạn có "Thiếu @ Override chú thích" kiểm tra bên trong Preferences -> Cài đặt Project -> Kiểm tra -> vấn đề thừa kế.
  2. Sử dụng phân tích -> Kiểm tra mã
  3. Tìm vấn đề thừa kế -> Thiếu chú thích @Override bên trong cửa sổ "Kết quả cho hồ sơ kiểm tra".
  4. Áp dụng sửa chữa "Thêm chú thích @ Override" Apply fix "Add @Override annotation"
+1

Trong" Cấu trúc Lớp "thay vì" Các vấn đề thừa kế "trong phiên bản Intellij của tôi nhưng bạn có thể tìm kiếm trên màn hình" kiểm tra "để" ghi đè "và tìm" Thiếu " @Overrid chú thích "dễ dàng. –

0

Đối với Eclipse (thử nghiệm trên sao Hỏa.2):

Window/Preferences (hoặc Project Properties) Java/Compiler Lỗi/Warnings Chú thích Thiếu chú thích @ Override - Đặt Lỗi (hoặc Cảnh báo)

Sau khi xây dựng lại không gian làm việc, trong Markers xem, nhấp chuột phải vào một trong các lỗi, Sửa nhanh (Ctrl + 1) và tất cả các lỗi sẽ xuất hiện. Chọn tất cả và áp dụng sửa chữa.

Điều này làm việc để tôi chú thích đúng một vài trăm lớp học ...

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