public class TaskDispatcher {
/**
* 任务处理器接口
*
* @author SYSTEM
*/
public static interface TaskHandler<T> {
public void handle(T task);
}
}
/**
* 任务处理器接口
*
* @author SYSTEM
*/
public static interface TaskHandler<T> {
public void handle(T task);
}
}
同时这个类里面还有一个方法,参数中有该接口的对象:
/**
* 注册一个任务处理器
*
* @param taskClass
* @param handler
*/
public <T extends AsyncTask> void registAction(Class<T> taskClass, TaskHandler<T> handler) {
if (log.isInfoEnabled()) {
log.info(" Regist " + handler + " for " + taskClass);
}
}
* 注册一个任务处理器
*
* @param taskClass
* @param handler
*/
public <T extends AsyncTask> void registAction(Class<T> taskClass, TaskHandler<T> handler) {
if (log.isInfoEnabled()) {
log.info(" Regist " + handler + " for " + taskClass);
}
}
下面是调用这个方法的代码,在这里一方面将T实例化了(我自己描述的,仅供自己理解),另一方面将TaskHandler接口实现了:
{
//FlowBranchTask是一个类,它extends AsyncTask
taskDispatcher .registAction(FlowBranchTask.class,
new TaskHandler<FlowBranchTask>() {
public void handle(FlowBranchTask task) {
//实现该方法
} }
);
}
//FlowBranchTask是一个类,它extends AsyncTask
taskDispatcher .registAction(FlowBranchTask.class,
new TaskHandler<FlowBranchTask>() {
public void handle(FlowBranchTask task) {
//实现该方法
} }
);
}
附录:内部接口和内部静态接口:
class TestClass {
public interface I1 {
void Test1();
}
public static interface I2 {
void Test2();
}
};
class IImpl1 implements TestClass.I1 {
@Override
public void Test1() {
System.out.println("IImpl Test");
}
}
class IImpl2 implements TestClass.I2 {
@Override
public void Test2() {
System.out.println("IImp2 Test");
}
}
public class MyTest {
/**
* @param args
*/
public static void main(String[] args) {
TestClass.I1 i = new IImpl1();
i.Test1();
TestClass.I2 i2 = new IImpl2();
i2.Test2();
}
}
IImpl Test
IImp2 Test
IImp2 Test