Отладка класснотфундэксализации
-
10-10-2019 - |
Вопрос
В моем коде у меня есть гнездовый класс, который держит объект и целое число. Это должно отметить начальные и конечные местоположения для сублистического метода.
Код выполняется до такой степени, что объект и целое число имеют установленные значения. Я проверил это в отладчике.
Следующая строка затем вызывает ListLoc<E> startNode= new ListLoc<E>(start, startElement);
И это то, что снимает исключение.
Класс уже определяется как
private class ListLoc<E>{
public Chunk<E> node;
public int index;
/* This object is created to hold a chunk and index location. Two
* objects will be created for the start and end locations for
* creating a sublist
*/
public ListLoc(Chunk<E> node, int index){
this.node= node;
this.index= index;
}
}
Странно то, что эта часть кода выполнялась нормально, прежде чем я заменил локальный StartNode на глобальную переменную. Эта идея не сработала, поэтому я изменил переменную обратно, и это исключение появилось.
Я не внес никаких изменений в путь класса или казни. Единственный раз, когда этот культ, - это отладчик
РЕДАКТИРОВАТЬ: Добавленная трассировка стека
ClassNotFoundException (Throwable). (String, Throwable) Линия: 217
ClassNotFoundException (Exception). (String, Throwable) Строка: недоступна ClassNotFoundException. (String) Строка: недоступна
Urlclassloader $ 1.run () Линия: недоступна
AccessController.doprivileged (PrivilegedExcectionAction, AccessControlContext) Строка: недоступен [Настоящий метод
Launcher $ ExtclassLoader (URLClassLoader) .FindClass (String) Линия: недоступна
LACKNER $ EXTCLASSLOADER.FINDCLASS (String) Линия: недоступна
LACKNER $ EXTCLASSLOADER (ClassLoader) .loadClass (String, Boolean) Line: Недоступный Launcher $ AppClassLoader (ClassLoader) .loadClass (String, Boolean) Строка: Недоступная Launcher $ AppClassLoader.loadClass (String, Boolean) Строка: недоступна.
Launcher $ Appclassloader (ClassLoader) .loadClass (String) Строка: недоступна
Из того, что он выглядит для меня, это класс -загрузчик, который запускает исключение.
Решение
Помогло бы, если бы вы могли прояснить, в чем исключение, однако, я предполагаю, что вы получаете ClassNotFound для E.
Похоже, ваш профессор еще не разъяснил концепцию дженериков. Я бы порекомендовал просмотреть, что такое общая структура данных. Совет, который я бы дал, состоит в том, чтобы искать, почему E не определен и почему вы пытаетесь создать их список.
Я думаю, что следующая ссылка может помочь прояснить синтаксис и концепции, стоящие за ними:http://download.oracle.com/javase/tutorial/extra/generics/index.html
Особенно в следующем разделе: http://download.oracle.com/javase/tutorial/extra/generics/simple.html