1
我有一些使用Java RMI的服務器和客戶端。 爲了簡化,在服務器上存在返回Task(iTask)和接收iTask的方法。 例如,服務器:
interface iTask extends Remote{
void publicMethod();
}
class Task extends UnicastRemoteObject implements iTask
{
public void publicMethod(){...} //interface
void packageMethod(){...} //not interface
}
,在一些方法(也無所謂在什麼)類:
iTask getTask(){
return new Task();
}
void doSomethingSecret(iTask task){
Task needthis = (Task)task; //BOOM! ClassCastException: $Proxy9 cannot be cast to nextQuest.server.Task
needthis.packageMethod(); // I need this...
}
在客戶端,我做到這
iTask tsk = abc.getTask()
def.doSomethingSecret(tsk);
ABC和def是遠程對象!
有沒有辦法,如何調用「packageMethod」?非常感謝, Mike S.(cz)