ClassNotLoadedException при инициализации массива 2d [дубликат]

Эта ошибка также может быть вызвана вложенным тегом <form> на главной странице, которая не разрешена.

<form id="someid"></form>

Это, вероятно, будет причиной, если вы выбрали шаблон и скопировали код откуда-то.

Решение

Вы должны разбейте вложенность тега <form>. Следующее должно стать

<form method="" name="form1">
  <form method="" name="form2>
  </form>
</form>

должно стать

<form method="" name="form1">    
</form>

<form method="" name="form2>    
</form>
22
задан DanM 4 February 2013 в 06:26
поделиться

6 ответов

В основном это означает, что загрузчик классов не загрузил класс GridSquare []. Говорят, что это похоже на ошибку в отладчике. Связь точки прерывания с кодом, по-видимому, немного нарушена. Либо вам нужно перекомпилировать, чтобы получить номера строк в синхронизации, либо какая-то другая проблема продолжается. В этот момент кода (после назначения) его необходимо загрузить. Если getSquares фактически возвращает подкласс (GridSquareSubclass []), в этот момент JVM может не загрузить его, потому что он ему не нужен (пока).

20
ответ дан Yishai 28 August 2018 в 11:49
поделиться

Я столкнулся с этой ошибкой, потому что я выполнял модульный тест по коду, использующему отражение. Я сделал специальный класс для тестирования всех функций кода. Junit явно использует отдельный загрузчик классов для тестовых классов (что имеет смысл), поэтому мой код не смог использовать отражение в этом классе. Трассировка стека, которую я получил, была чрезвычайно обобщенной (java.lang.InstantiationException), но когда я проверил режим отладки, было больше деталей самого объекта Exception (org.eclipse.debug.core.DebugException: com.sun.jdi.ClassNotLoadedException) что привело меня к такому выводу.

Поэтому я переместил специальный класс в основной загрузчик классов (перемещая файл из src / test / java в src / main / java), и он отлично работал. Мне не нравится это решение, но я не могу найти альтернативы. В моем случае это не имеет большого значения, но я вижу, как это может быть проблемой для других.

1
ответ дан James Watkins 28 August 2018 в 11:49
поделиться

Я столкнулся с той же проблемой, я просто создал публичный статический основной метод void, создал объект того же типа и Run As java Application, затем удалил основной метод, теперь он отлично работает.

-3
ответ дан Raghavendra Nanjundappa 28 August 2018 в 11:49
поделиться

Инициализация GridSquare решит проблему. squares = new GridSquare ();

-1
ответ дан Sanditha Shetty 28 August 2018 в 11:49
поделиться

Я видел это в Eclipse, когда у вас есть переменные класса подкласса, скрывающие переменные родительского класса. Каким-то образом это путает Eclipse (и вообще это плохая идея). Например:

class A {
   private String a;
}

class B extends A {
   public String a;
}
0
ответ дан studgeek 28 August 2018 в 11:49
поделиться
//Give a SIZE to the array:
GridSquare[] squares = GridSquare[this.theGrid.size()];

//Fill each element of the array with the object constructor to avoid the null value
for(int i=0; i<this.theGrid.size(); i++){
    squares[i] = new GridSquare();
    squares[i] = this.theGrid.getSquares(14, 18, 220, 222);
}
0
ответ дан user3738027 28 August 2018 в 11:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: