2011-12-12 36 views
9

Tôi đang nhập một lớp không được dùng nữa, mà tôi buộc phải sử dụng.Bỏ qua Loại cảnh báo không được chấp nhận trên Tuyên bố nhập

Tôi muốn chặn lỗi không được dùng nữa bằng cách sử dụng chú thích @SuppressWarnings("deprecation").

Theo nhận xét về chú thích rằng:

Như một vấn đề của phong cách, lập trình viên nên luôn luôn sử dụng chú thích này trên yếu tố lồng nhau sâu sắc nhất mà nó có hiệu quả. Nếu bạn muốn chặn cảnh báo theo một phương thức cụ thể, bạn nên chú thích phương thức thay vì lớp của nó.

Vì vậy, tôi rõ ràng không muốn chú thích các lớp và do đó ngăn chặn cảnh báo deprecation trên bất kỳ kiểu lớp của tôi sử dụng, nhưng tôi cũng muốn sử dụng câu lệnh import để tránh gõ ra các loại tên đầy đủ , kéo dài toàn bộ màn hình của tôi, trên mỗi lần sử dụng lớp không được chấp nhận.

Tôi nghĩ rằng tôi muốn làm một cái gì đó giống như chú thích tuyên bố import với @SuppressWarnings (không thể) hoặc quy định cụ thể trong @SuppressWarnings chú thích loại phớt lờ cảnh báo cho (ví dụ @SuppressWarnings("deprecation", "fully.qualified.type.name").

Tôi muốn báo cho trình biên dịch " nếu tôi sử dụng cái này, và chỉ cái này, lớp không được chấp nhận, được tham chiếu bởi Tên đơn giản của nó, bất kỳ nơi nào trong lớp khác này, và bất kỳ lớp học nào khác mà tôi tham khảo, bạn nên cho tôi biết về "

Có gì không như thế này có sẵn?

+0

Tên đầy đủ của nó kéo dài toàn bộ màn hình? Tôi tự hỏi tại sao nó bị hư hỏng ... – corsiKa

+0

Đó là một dự án lớn ... có lẽ nên được chia thành nhiều dự án nhỏ hơn, nhưng đó không phải là bộ phận của tôi. –

+3

Bạn có cảm thấy khó chịu bởi cảnh báo trình biên dịch không? – Paul

Trả lời

4

Một cách để giải quyết vấn đề này là làm như sau, giả sử bạn có thể mở rộng lớp Không được chấp nhận.

import comp.DeprecatedClass; 

@SuppressWarnings("deprecation") public class MyDeprecatedClass extends DeprecatedClass{ } 

Sau đó, bạn có thể sử dụng phiên bản của mình mà không phải lo lắng về cảnh báo.

+0

Tôi cho rằng đây là một tùy chọn, với điều kiện lớp học không phải là cuối cùng và bạn không ngại thêm mới lớp phân cấp lớp. Có vẻ như một giải pháp khá khắc nghiệt đối với tôi. Ngoài ra: nếu bạn làm điều này, không có gì ngăn bạn từ việc sử dụng lại không chính xác MyDeprecatedClass ở nơi khác và không thấy thông báo cảnh báo. –

+0

Khi sử dụng Eclipse, tôi có thể di chuột qua MyDeprecatedClass nó sẽ hiển thị "@SuppressWarnings (value = {" deprecation "})" do đó, nó cung cấp cho bạn một dấu hiệu cho thấy bạn đang chặn nó theo một cách tinh tế.Trong khi tôi đồng ý điều này là cực đoan, bạn có thể tránh xa việc này bên trong nơi bạn muốn sử dụng nó: @SuppressWarnings ("không dùng nữa") lớp riêng MyDeprecatedClass mở rộng comp.DeprecatedClass {} Thật không may, đây không phải là một làm việc xung quanh. – Jyro117

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