public interface ProcessFile { public void process()throws ProcessException;
}
该方法在具体实现时有可能有N个实现方法,每个方法都是处理一批文件当然,在处理文件时会遇到一些情况,需要让外部函数知道其处理的结果考虑到封装性,不想用return,也不想用重载,想用类似于回调函数,让用户输入一个回调的interface,来获得该方法在具体实现中的返回值
}
该方法在具体实现时有可能有N个实现方法,每个方法都是处理一批文件当然,在处理文件时会遇到一些情况,需要让外部函数知道其处理的结果考虑到封装性,不想用return,也不想用重载,想用类似于回调函数,让用户输入一个回调的interface,来获得该方法在具体实现中的返回值
private MessageGeter mg;
//提供一个set方法或构造方法中传入
public void setMessageGeter(MessageGeter mg){this.mg = mg;} //在处理的时候把返回值放到mg中 public void process()throws ProcessException{
if(mg != null) mg.xxx = rtObject;
}
}在外部调用:
T t = new T();
t.setMessageGeter(mg);
t.process();
Object rtValue = mg.xxx;
OK
public void process() {
ProcessFileCallBack callback = new ProcessFileCallBack{
public String onFinish(){
return msg;
}
}
}}
public void process() {
ProcessFileCallBack callback = new ProcessFileCallBack{
public String onFinish(){
return msg;
}
}
}}
该如何实现
而是调用者来实现,你只管把返回的消息set进去就行了.
public void process() {
ProcessFileCallBack callback = new ProcessFileCallBack{
public String onFinish(){
return msg;
}
}
}}这样的形式实现回调那我的这个接口要怎么编写,还请大侠帮忙和指点迷津
public class ProcessFileCallBack { private ProcessFile p = null;
public ProcessFileCallBack(ProcessFile event){
p = event;
}
public String processFile(){
String result = "";
p.process();
return result;
}
}调用测试:public class MyCallBack implements ProcessFile {
public void process() {
ProcessFileCallBack callback = new ProcessFileCallBack(this){
public String aprocessFile(){
System.out.println("complete");
return "good";
}
};
callback.processFile();
}}