2015-05-05 11 views
11

Tôi đang làm việc trên một dự án mà các nhà phát triển trước đây đã thêm rất nhiều mã this.x theo ý kiến ​​của tôi làm cho nó dài hơn và do đó ít dễ đọc hơn. Và nó được đặt trên toàn bộ dự án bởi một số hành động lưu Eclipse.IntelliJ/Android Studio: xóa việc sử dụng 'này' không cần thiết.

Những gì tôi đang tìm kiếm là một IntelliJ refactoring phương pháp mà tôi có thể cấu trúc lại tất cả tự tài liệu tham khảo trên toàn bộ dự án để điều này:

this.something = "foo"; 

trở này:

something = "foo"; 

Is có bất cứ điều gì như thế này (Tôi đang sử dụng Android Studio 1.2), hoặc tôi phải chạy một regex thay thế và chắc chắn rằng không có gì phá vỡ?

Trả lời

22

Một cách mà bạn có thể đạt được điều này là sử dụng Inspections. Bạn có thể chỉnh sửa các kiểm tra chạy trên mã của mình bằng cách đi tới Cài đặt>Trình biên tập>Thanh tra. Bạn muốn tìm thay đổi mà bạn muốn thay đổi trong số Java>Vấn đề về kiểu mã và được gọi là "Không cần thiết" này 'vòng loại ".

Sau khi kiểm tra và áp dụng kiểm tra này, nó sẽ làm nổi bật các khu vực mã không cần thiết sử dụng từ khóa this. Tại thời điểm này điều này sẽ không có bất kỳ ảnh hưởng trực tiếp trên cơ sở mã của bạn và bạn sẽ phải đi qua từng trường hợp một. Để sửa chữa một loạt các cuộc thanh tra cảnh báo sau đó đi đến Phân tích>Kiểm tra mã ...

Từ tùy chọn này bạn có thể chọn để chạy kiểm tra trên các tập tin cụ thể hoặc toàn bộ dự án. Điều này sẽ làm nổi bật bất kỳ trường hợp mã nào xung đột với các quy tắc Kiểm tra của bạn, ví dụ như quy tắc mới được thêm vào này. Để áp dụng sửa chữa tất cả những gì bạn cần làm là nhấp chuột phải vào vấn đề hoặc nhóm sự cố mà bạn muốn sửa và sau đó chọn Áp dụng sửa lỗi.

enter image description here

+0

Làm tốt lắm! Đây là giải pháp tốt hơn nhiều so với tôi. – jimpanzer

+1

Khi tùy chọn này được đặt trong 15.0.2, IntelliJ cung cấp "Mã dọn dẹp" khi con trỏ đang ở trên 'không cần thiết' này và bạn nhấn Alt + Enter. Thao tác này sẽ xóa tất cả các lần xuất hiện 'this.' không cần thiết này. –

-1

Tôi nghĩ rằng bạn có thể sử dụng:

  1. CTRL +SHIFT +R
  2. Text để tìm "\ này."
  3. Thay thế bằng ""

Điều đó sẽ giải quyết được vấn đề của bạn.

+1

Điều đó có thể phá vỡ mã ở một số nơi. Hãy nói rằng nếu bạn có 'public void setFoo (Foo foo) {this.foo = foo; } 'sau đó tìm kiếm và thay thế sẽ phá vỡ nó, bởi vì trong trường hợp này' this.' là không cần thiết. –

+0

@BohuslavBurghardt, vâng, bạn nói đúng. Vì vậy, câu trả lời của tôi không an toàn. – jimpanzer

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