2015-06-23 3 views
2

Я получил это. Но мой список не пуст, и у них есть элемент с кодом «ADPL». Почему это возвращает меня NoSuchElement?java.util.NoSuchElementException: Нет значения Java 8 Lambda

String retour = CodeExecutionChaine.A.getCode(); 
    if (!lstChaines.isEmpty()) { 
     retour = lstChaines.stream() 
         .filter(t -> t.getNomChaine() == Chaines.ADPL.getCode()) 
         .map(Chaine::getStatutChaine) 
         .findFirst() 
         .orElse(CodeExecutionChaine.A.getCode()); 

Перечисление Chaines

public enum Chaines { 

    ADPL("ADPL"), 
    ADIL("ADIL"), 
    ADSL("ADSL"); 

    private String code = ""; 

    Chaines(String code) { 
    this.code = code; 
    } 

    public String getCode() { 
    return this.code; 
    } 

} 

Это то же самое для CodeExecutionChaine

+2

Не могли бы вы разместить свое исключение со стеком? –

+1

Является ли 'Chaines.ADPL.getCode()' ссылкой на 'String'?' – CKing

+0

Да и t.getNomChaine() является строкой –

ответ

3

Изменение t -> t.getNomChaine() == Chaines.ADPL.getCode() в t -> t.equals(Chaines.ADPL.getCode()).

== проверяет подлинность. Поэтому == приведет к true, только если две ссылки указывают на один и тот же объект. С другой стороны, equals проверяет на наличие equality. Две ссылки, которые не указывают на один и тот же объект, но имеют аналогичные properties, по-прежнему считаются равными. Вы получаете NoSuchElementException, потому что вы использовали == в filterStream, в результате чего были получены нулевые элементы, удовлетворяющие условию.

+0

Это работает !!! Почему это разница? Почему == не работает? –

+0

Точно нулевые элементы. Но 'CodeExecutionChaine.A.getCode()' должен быть возвращен в этом случае. Почему исключение NoSuchElementException? – saka1029

+1

@ saka1029 Ни один из методов, которые вы используете, не может напрямую передать это «Исключение». Пожалуйста, разместите свою трассировку стека в своем вопросе для дальнейшего анализа. Также подтвердите, что вы показываете нам тот же код, с которым вы столкнулись. – CKing

Смежные вопросы