2016-10-25 3 views
-4

У меня есть функция со следующей подписью:java.util.ArrayList не может быть приведен к объекту

class ABC : public static List<ObjectXYZ> getObjectXYZList(Param1 param1) 

Я вызываю функцию таким образом:

List<ObjectXYZ> objectXYZ = ABC.getObjectXYZList(param1); 

Теперь, в идеале она должна работать, поскольку я назначаю переменную List, возвращаемое значение функции типа List, но я получаю следующую ошибку:

java.lang.ClassCastException: java.util.ArrayList cann ot be cast to com.org.lib.ObjectXYZ

Может кто-нибудь подскажет, что здесь может быть неправильно? Может быть, мне нужно выполнить принудительное кастинг вокруг возвращаемого объекта?

Обновленный код, как MCVE, надеюсь, что это более ясно

java.lang.ClassCastException: java.util.ArrayList cannot be cast to com.someorg.common.ObjectXYZ 

// Calling method 
List<ObjectXYZ> opaqueVoList = ABC.getObjectList(response); 

// Called Method 
class ABC { 
    public static List<ObjectXYZ> getObjectList(Response response) 
      throws RetryException { 
     if (some_condition) 
       List<ObjectXYZ> listObj = new ArrayList<ObjectXYZ>(); 
       //magical stuff 
       return listObj; 
      } 
     } 
     return null; 
    } 
} 
+5

Ошибка не совпадает с размещенным кодом. Отправьте сообщение [MCVE] (http://stackoverflow.com/help/mcve). –

+3

Докторский код не помогает в подобных ситуациях, поэтому ваш вопрос и ошибка кажутся неясными. Показать реальный код – Li357

+0

Вы уверены, что используете простой список везде, а не arraylist? –

ответ

0

Пожалуйста, смотрите в StackTrace увидеть строку, где возникает проблема. . Первая строка stacktrace должна указывать на то, что вы точно определяете причину. Вы можете обновить образец кода с помощью этой строки или задать вопрос с соответствующей частью stacktrace. Кто-то просто бросает ObjectXYZ в ArrayList, кажется.

Кроме того, не возвращайте null из метода, возвращающего список. return Collections.emptyList() вместо этого.

RetryException - это org.springframework.batch.retry.RetryException? Не нужно объявлять метод бросить его, это RuntimeException.

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