2016-03-23 13 views
0

Collections.minを使用しているときにNoSuchElementExceptionが発生していますが、他の関連する質問もサイトで読みました。または使用されたコレクションが空です。しかし、私はコードのデバッグをチェックしている、リストは値を持って、まだ私は例外を取得しています。NoSuchElementException Listが空でないときにCollections.min(List、Comparator)を使用しているとき

public Date getNewDate(List<MyClass> list1){ 

    Comparator<MyClass> startDate = new Comparator<MyClass>() { 
     @Override 
     public int compare(MyClass date1, MyClass date2) { 
      return date1.getStartDate().compareTo(date2.getStartDate()); 
     } 
    }; 

    return Collections.min(list1, startDate).getStartDate(); 
} 
+1

リストをもう一度チェックしてください。それは空であるかもしれない – FallAndLearn

答えて

2

これを知るには、他の関連する質問を読む必要があるのはなぜですか?最初の情報源、javadocは明示的にそう言いますか? Collections.min()のjavadocを引用

:コレクションが空の場合

NoSuchElementExceptionをスローします。

エルゴ、あなたのコレクション(list1)は空です。

エラーメッセージをキャッチし、強化しようと、それを信じていない場合は、次の

try { 
    return Collections.min(list1, startDate).getStartDate(); 
} catch (NoSuchElementException e) { 
    throw new RuntimeException("Got NoSuchElementException but list size is " + 
           list.size() + " (list is: " + list + ")", e); 
} 

は、あなたが取得するとき、リストが空でないことを証明するために、私たちはあなたがこれを行う際に発生する完全なスタックトレースを表示します例外。

これは、a Minimal, Complete, and Verifiable exampleの一部であるリストの内容も表示します。

関連する問題