| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java: Общие вопросы > При выполнении неможет найти конструктор генерикса |
| Автор: Dims 10.8.2009, 20:00 | ||||||||||||||
У меня в классе
был конструктор
Впоследствии я выяснил, что передавать mets мне не нужно. Убрал этот параметр и переделал все места, где этот конструктор вызывался. И полезли ошибки, причём во время выполнения возникает java.lang.NoSuchMethodError, а компиллятор не ругается. Я пробую две версии. В первой версии у меня конструктор описан
во второй версии
причём в коде конструктора mets не используется. Поскольку параметр mets опционален, то по идее, обе версии должны работать одинаково. Ан нет! Первая версия не работает в классе
где в конструкторе вызывается super(false) Вторая версия не работает в классе
Я так понимаю, она не может найти конструктор, так как в нём не используется типизированный параметр. Что делать? По-моему, это чуть ли не ошибка в то ли в джавамашине, то ли в компилляторе. Добавлено через 14 минут и 23 секунды Решил при помощи вот такого шаманства
и плюс явное указание параметра базовых генериксов во всех местах. Не ожидал такой подлянки от джавы. Неужели баг Джавы? Я много раз очищал проект НетБинса, включая прямое стирание всех class и jar файлов -- не помогло. Значит, НетБинс не виноват. Может быть, рантайм где-то по-разному указан, с одним компилируется, а с другим выполняется? |
| Автор: cube 11.8.2009, 17:45 |
| В вашем примере использовался класс с конструктором Compound(boolean ordered, M... mets), иначе как java машина знала бы о таком классе? У меня такие ошибки бывают когда классы находятся в разных библиотеках, компилятор здесь не причем, удаление всех библиотек проекта, + clean 'n' bild всех связанных проектов, библиотек - решают эту проблему ;) Сам проверял... Если вопрос остался, то посмотрите внимательно где вы используете этот класс, как связан этот класс с вашим проектом, какие библиотеки еще используют этот класс и тогда вам все станет ясно ;) удачи! |