Эта ошибка также может быть вызвана вложенным тегом <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>
В основном это означает, что загрузчик классов не загрузил класс GridSquare []. Говорят, что это похоже на ошибку в отладчике. Связь точки прерывания с кодом, по-видимому, немного нарушена. Либо вам нужно перекомпилировать, чтобы получить номера строк в синхронизации, либо какая-то другая проблема продолжается. В этот момент кода (после назначения) его необходимо загрузить. Если getSquares фактически возвращает подкласс (GridSquareSubclass []), в этот момент JVM может не загрузить его, потому что он ему не нужен (пока).
Я столкнулся с этой ошибкой, потому что я выполнял модульный тест по коду, использующему отражение. Я сделал специальный класс для тестирования всех функций кода. Junit явно использует отдельный загрузчик классов для тестовых классов (что имеет смысл), поэтому мой код не смог использовать отражение в этом классе. Трассировка стека, которую я получил, была чрезвычайно обобщенной (java.lang.InstantiationException), но когда я проверил режим отладки, было больше деталей самого объекта Exception (org.eclipse.debug.core.DebugException: com.sun.jdi.ClassNotLoadedException) что привело меня к такому выводу.
Поэтому я переместил специальный класс в основной загрузчик классов (перемещая файл из src / test / java в src / main / java), и он отлично работал. Мне не нравится это решение, но я не могу найти альтернативы. В моем случае это не имеет большого значения, но я вижу, как это может быть проблемой для других.
Я столкнулся с той же проблемой, я просто создал публичный статический основной метод void, создал объект того же типа и Run As java Application, затем удалил основной метод, теперь он отлично работает.
Инициализация GridSquare решит проблему. squares = new GridSquare ();
Я видел это в Eclipse, когда у вас есть переменные класса подкласса, скрывающие переменные родительского класса. Каким-то образом это путает Eclipse (и вообще это плохая идея). Например:
class A {
private String a;
}
class B extends A {
public String a;
}
//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);
}