У меня есть сервис RMI, который обеспечивает следующий метод:Невозможно легко переключить подпись на базовые классы?
Я хочу изменить свою подпись:
Collection<T> save(Collection<T> saveList) throws RemoteException;
Это не приводит к ошибкам компиляции, так что кажется, что все будет хорошо , Но когда клиентское приложение пытается выполнить этот метод, я получаю следующее исключение. Я не изменил вызывающих, что означает, что метод все еще вызывается с помощью ArrayList
.
java.lang.NoSuchMethodError: com/IDatabaseDao.sync(Ljava/util/ArrayList;)Ljava/util/ArrayList;
Я не знаю, как RMI работает подробно, но мне кажется, что этот метод не может быть найден, потому что он не имеет ожидаемое представление строки? Это правда? Поэтому мне пришлось бы менять всех звонящих здесь, или есть лучший способ?
Это, кажется, очень подвержено ошибкам, потому что здесь нет ошибок компиляции. Есть ли инструмент, который распознает такие проблемы, возможно, подключаемый модуль Eclipse?
Нет разницы между двумя строками кода, которые вы опубликовали, а остальная часть не имеет большого смысла. – EJP
К сожалению, это опечатка. Просто переконфигурируйте его. –
Ваш последний абзац до сих пор не имеет смысла. Бросание NoSuchMethodError - это именно то, что происходит. Я не знаю, почему вы говорите иначе, но в этом смысл того, что вы написали, поскольку это означает что-либо вообще. Попробуй еще раз. – EJP