2013-12-25 2 views
-1

Привет У меня возникли проблемы с классом это классПолучение неправильного значения из метода

public class BeerExpert { 
public List getBrands(String color){ 
    List brands = new ArrayList(); 
    if(color.equals("amber")){ 
     brands.add("Jack Amber"); 
     brands.add("Red Moose"); 
    } 
    else { 
     brands.add("Jail Pale Ale"); 
     brands.add("Gout Stout"); 
    } 
    return(brands); 
} 

}

и я называю этот класс, как этот

BeerExpert be = new BeerExpert(); 
List result = be.getBrands(c); 

и я получаю эту ошибку Тип несоответствия: невозможно преобразовать из java.util.List в com.sun.xml.internal.bind.v2.schemagen.xmlschema.List

Я не понимаю, где ошибка, если метод getBrands возвращает список, и мой результат также есть Список

+0

Сравните выражения 'import' ваших классов' List'. – Keppil

+0

Частично не связаны, но вы должны использовать дженерики, если у вас нет причин. – Darkhogg

+0

Список, который вы возвращаете из BeerExpert.getBrands (цвет строки), имеет тип java.util.List. Результат объекта имеет тип com.sun.xml.internal.bind.v2.schemagen.xmlschema.List. Либо вы использовали неверный оператор импорта, либо, если вам нужен такой список в вашем классе где-то еще, вы должны использовать полное имя так: java.util.List result = be.getBrands (c); –

ответ

1

Два класса списка отличаются. Проверьте их имена пакетов.

Ваш метод getBrands возвращает java.util.List, в то время как другой
класс com.sun.xml.internal.bind.v2.schemagen.xmlschema.List.
Итак, нет ничего неожиданного в этом исключении, которое вы получите.

Возможно, вы введете неправильный код List в свой код.
Другими словами, это List здесь:
List result = be.getBrands(c);
не java.util.List, как это должно быть.

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