2011-11-07 28 views
8

Tôi có hàm này với một số mã chết, được đánh dấu bởi Eclipse.Eclipse đánh dấu các dòng là mã chết

Tôi có hai dòng kiểm tra & b. Các dòng kiểm tra b được đánh dấu là null.

public int[] runThis(List<Integer> buildIds, List<Integer> scenarios, boolean oflag) { 

    int rating[] = new int[scenarios.size()]; 

    if(buildIds == null) { 
     System.out.println("ERROR - Building ID list is null!"); 
     return null; 
    } 

    if(scenarios == null) { 
     System.out.println("ERROR - Scenario list is null!"); //dead 
     return null; //dead 
    } 

    return rating;  

} 

Tại sao hình elip làm cho hai dòng bị chết? Bất kỳ giúp đỡ? Cảm ơn rất nhiều vì thời gian của bạn.

+8

Có mã nào khác trong phương pháp đó không? Có lẽ bạn đã bị dereferencing 'b' trước đó, nó nói với Eclipse rằng' b' không thể là 'null' vào thời điểm này. Trong trường hợp đó, bạn cũng sẽ nhận được một cảnh báo như "kiểm tra null không cần thiết" tại dòng 'if (b == null)'. –

+1

@Joachim +1000. –

+0

Tôi không biết về * Eclipse * nhiều nhưng IntelliJ IDEA có thể phân tích mã của bạn trong thời gian thực và cảnh báo bạn rằng một số mã không thể tiếp cận được. Trong trường hợp của bạn, nếu IntelliJ phát hiện ra rằng * b * không bao giờ * null *, thì nó sẽ cảnh báo bạn rằng hai dòng này không bao giờ có thể đạt được vì điều kiện * b == null ** luôn luôn là sai. – TacticalCoder

Trả lời

15

Vì bạn đã gọi số scenarios.size() trong hàm tạo mảng của mình. Điều này đảm bảo scenarios không phải là không hoặc nó sẽ có ném một ngoại lệ vào thời điểm đó.

+0

Bạn nói đúng. Cảm ơn. – jn1kk

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