2009-11-05 25 views
5

Tôi có một giao diện hiện đang trống và mở rộng một giao diện khác. Tôi muốn loại bỏ giao diện trống và sử dụng giao diện cơ sở, và đang cố gắng tìm lại cấu trúc lại chính xác trong IntelliJ.'Loại bỏ trung gian' tái cấu trúc IntelliJ trên một giao diện trống

Tôi đã cố gắng "loại bỏ trung gian" nhưng đã "không thể thực hiện tái cấu trúc. Dấu mũ phải được đặt ở tên của trường được tái cấu trúc".

Trả lời

2

Tôi nghĩ rằng những gì bạn đang tìm kiếm là quá trình tái cấu trúc "Loại di chuyển".

+0

Không hoạt động - Tôi vẫn gặp lỗi "Dấu mũ nên được định vị ...". – ripper234

+0

Bạn đang áp dụng công cụ Refactor ở đâu? Trình tái cấu trúc này phải được áp dụng trong lớp khai báo trường. Vì vậy, nếu bạn có: A mở rộng B .... riêng A myField; bạn chỉ có thể áp dụng phép tái cấu trúc này trên A trong dòng khai báo trường. –

2

Nhìn vào a blog post explaining the "Remove Middleman" refactoring trong IDEA, tôi nghĩ bạn không thể sử dụng nó cho việc này. Nó chỉ dành cho "thay thế tất cả các cuộc gọi đến các phương thức ủy nhiệm với các cuộc gọi trực tiếp tương đương".

(Trong một khoảnh khắc tôi nghĩ khác refactoring, "Sử dụng giao diện nếu có thể", có thể giúp đỡ, nhưng tôi không thể nhận được rằng làm việc hoặc trong trường hợp thử nghiệm đơn giản của tôi.)

5

Tôi nghĩ rằng những gì bạn muốn để làm là refactor "inline" trên giao diện không mong muốn, ví dụ

Nếu

 
class Thing implements ThingA 

 
interface ThingA extends ThingB 

Để thoát khỏi ThingA

bạn làm và inline (ctrl + alt + n) khi caret là trên ThingA, bạn kết thúc với:

 
class Thing implements ThingB 
0

Cách tốt nhất để loại bỏ sử dụng một giao diện rỗng là thông qua "Sử dụng giao diện nếu có thể", đi đến định nghĩa của giao diện bạn muốn xoá và chọn "Sử dụng giao diện nếu có thể" từ trình đơn "Refactor". Sau đó bạn sẽ kết thúc với một giao diện không sử dụng mà bạn có thể xóa một cách an toàn.

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