根据我的经验:
优点:
你可以实现两个这样的接口:
常见任务界面:
public interface Task<T extends Serializable> extends Serializable {
T execute();
}
Run Code Online (Sandbox Code Playgroud)
Rmi接口:
public interface RmiTask extends Remote {
<T extends Serializable> T executeTask(Task<T> task) throws RemoteException;
}
Run Code Online (Sandbox Code Playgroud)
RmiTask 服务器端的实现:
public class RmiTaskExecutor implements RmiTask {
public <T extends Serializable> T executeTask(Task<T> task) {
return task.execute();
}
}
Run Code Online (Sandbox Code Playgroud)
示例客户端Task实现:
public class IsFileTask implements Task<Boolean> {
final String path;
public IsFileTask(String path) {
this.path = path;
}
public Boolean execute() {
return new File(path).isFile();
}
}
Run Code Online (Sandbox Code Playgroud)
缺点:
method()上PassedObject,但奇妙的客户端可以覆盖此方法并执行任何他想做的有...Callables并使用定义的超时运行它们).| 归档时间: |
|
| 查看次数: |
12482 次 |
| 最近记录: |