Runtime-Class приведёт исключение при компиляции исходного кода с помощью скрипта Ant - PullRequest
0 голосов
/ 02 марта 2012

Я использую ant и jdk-1.5_10 для компиляции исходного кода и создания файла jar.И банка создана без каких-либо ошибок компиляции.Но я сталкиваюсь со следующим во время выполнения для следующего кода - Исключение приведения класса -> java.lang.Long не может быть приведен к [Ljava.lang.Object (Примечание. Я не включил полный код,только тот, в котором у меня есть сомнения)

void someFunction(List<Object[]> result){
   Object[] resultObject = new Object[1];
   for (Object resultSet : result) {
      resultObject[0] = resultSet;
   }//end of for
}//end of function

Я получаю исключение в 3-й строке (для (Object resultSet: result)).Но когда я заменяю класс, который содержит вышеупомянутую функцию, скомпилированную с использованием eclipse, он выполняется без ошибок.Eclipse также использует jdk-1.5_10

Я не могу выяснить причину этого.Есть ли проблема, когда я компилирую исходный код, используя ant-скрипт.Нужна помощь, чтобы выяснить причину этого сценария.

Спасибо !!

1 Ответ

0 голосов
/ 02 марта 2012

Когда вы запускаете свой сгенерированный муравейником jar из командной строки, вы передаете «someFunction» список элементов, и один из этих элементов - Long, и ваши программы ожидают, что он будет Object [] , Если вы попробуете с одним и тем же вводом, оба случая (командная строка и затмение) должны делать то же самое.

Тем не менее, я думаю, что вы не выполняете итерацию правильно, каждый объект в списке является массивом (вы используете объект):

void someFunction(List<Object[]> result){
    Object[] resultObject;
    for (Object[] resultSet : result) {
        System.out.println(resultSet); // Is an Object[]
       resultObject = resultSet;
    }//end of for
 }//end of function
...