Я использую смолу в одном проекте. Пока все хорошо, кроме одного маленького вопроса?
Я создал универсальный метод, который принимает любой Объект в качестве единственного аргумента, но когда я вызываю метод, он ищет имя метода, но с другим типом аргумента, конечно, с переданным типом объекта.
Я не уверен, может ли Ресин или любой другой Сервер приложений на самом деле сделать это, или я ошибаюсь здесь?
Я разрабатываю интерфейс в Objective-j / Cappuccino и отображаю удаленные методы Java через CP2JavaWS.
В основном в Objective-J я объявляю что-то вроде этого:
-(CPString) updateQuote:(id)modifiedQuote
{}
Мне не нужно это реализовывать, просто объявите это.
Затем в моем WebApp я объявляю и реализую метод следующим образом:
public String updateQuote(Object modifiedQuote)
{
// implementation
}
Затем в интерфейсе я вызываю метод следующим образом:
[DBManagerRemoteService updateQuote:aObject delegateRespHandler:@selector(success:) delegateFailHandler:@selector(failed:)];
Проблема в том, что aObject является экземпляром класса CYQuote, поэтому, когда я вызываю удаленный метод, он обнаруживает, что не ищет updateObject(java.lang.Object)
, а вместо этого ищет updateObject(com.myApp.services.CYQuote)
, который не объявлен или не реализован. Конечно, я мог бы просто реализовать метод для каждого класса, но моя цель - создать общий метод обновления.