2009-07-06 9 views
15

Tôi sử dụng một class for detecting email addresses sử dụng các boolean cuối cùng để định cấu hình hành vi phù hợp. Kể từ khi tôi nâng cấp lên Eclipse 3.5 tôi nhận được cảnh báo về mã chết, vì Eclipse thông báo rằng một chi nhánh tại này không thể đạt được:Làm cách nào để ngăn chặn các cảnh báo về mã chết của Eclipse 3.5

private static final boolean ALLOW_DOMAIN_LITERALS = false; 
private static final String domain = ALLOW_DOMAIN_LITERALS ? rfc2822Domain : rfc1035DomainName; 

Lạ lùng thay nó là hạnh phúc với điều này:

private static final String domain; 
static { 
    if(ALLOW_DOMAIN_LITERALS) { 
     domain = rfc2822Domain; 
    } else { 
     domain= rfc1035DomainName; 
    } 
} 

vì nó dường như nhận ra mẫu if(DEBUG) phổ biến, nhưng toán tử bậc ba dường như không đếm.

Vì tôi không muốn chia lớp quá nhiều chỉ để giữ cho Eclipse vui vẻ, tôi muốn đặt @SuppressWarnings ở trên cùng thay vì thay đổi mã. Thật không may tôi không thể tìm thấy một phù hợp với một trong những brute-lực "all". Có một giá trị chỉ cho việc phát hiện mã chết?

Trả lời

18

CẬP NHẬT: từ Adam bình luận:

Trong Eclipse 3.6 và các phiên bản mới hơn Eclipse @SuppressWarnings("unused") bây giờ có thể được sử dụng để ngăn chặn cảnh báo 'chết mã'. Xem Christopher Stock's answer.

Xem thêm Eclipse 4.4(Luna) help cho @SuppressWarnings.

Original câu trả lời:

Tất cả SuppressWarnings giá trị Eclipse 3.5 "biết" được liệt kê trong this page. Dường như không có giá trị nào để triệt tiêu sự phát hiện mã chết mới. Nhưng bạn có thể sử dụng @SuppressWarnings("all") ngay trước khi khai domain vì vậy nó sẽ ngăn chặn cảnh báo cho duy nhất mà dòng không cho cả lớp:

private static final boolean ALLOW_DOMAIN_LITERALS = false; 
@SuppressWarnings("all") 
private static final String domain = ALLOW_DOMAIN_LITERALS ? rfc2822Domain : rfc1035DomainName; 

Bởi vì chết kiểm tra mã là một cái mới bạn cũng có thể đề nghị một enchancement trong Eclipse bug database để hỗ trợ cho hoạt động tam giác.

+1

Đây là mục nhập lỗi: https://bugs.eclipse.org/bugs/show_bug.cgi?id = 282768 Bugzilla chắc chắn thiếu cả tìm kiếm trùng lặp và cú pháp Wiki StackOverflow cung cấp :-) –

+1

Tôi đã thêm một cho @SuppressWarnings còn thiếu: https://bugs.eclipse.org/bugs/show_bug.cgi?id= 282770 –

+3

Trạng thái của cả hai yêu cầu hiện đã được xác minh cố định – Casebash

8

Chọn Ignore trong Windows -> Preferences > Java > Compiler > Errors/Warnings dưới Potential programming problems phần

+1

Nhưng tôi thường thích tính năng này, nó không thành công ở đây. Nếu đó là mã của riêng tôi, tôi sẽ thay đổi nó. Bạn cũng có thể vô hiệu hóa nó ở cấp độ dự án (tức là kích hoạt các thiết lập trình biên dịch dự án cụ thể trong các thuộc tính của dự án), nhưng tôi thậm chí không muốn làm điều đó. –

6

Bạn có thể vô hiệu hóa các cảnh báo của các mã chết 'sử dụng

@SuppressWarnings("unused") 

Xem tài liệu thực cho thông tin hơn:

http://help.eclipse.org/kepler/index.jsp?topic=%2Forg.eclipse.jdt.doc.user%2Ftasks%2Ftask-suppress_warnings.htm

"chưa sử dụng" để ngăn chặn cảnh báo liên quan đến mã không sử dụng và mã chết

Chúc mừng

Christopher

+2

Đã bỏ phiếu vì nó có thể hữu ích cho ai đó đến đây. Tính năng này không tồn tại trở lại sau đó, nhưng hiện tại (xem các vấn đề Bugzilla được liên kết trong các nhận xét của tôi về câu trả lời được chấp nhận). –