我有一个类/处理程序列表:job1、job2、job3……我想按照我从 Redis 获得的顺序执行它们。因此,序列(列表)可以是任何序列 job1,job2,job3 或 job3,job2,job1。每个作业都有自己的实现。我正在尝试执行以下操作:在我编写处理程序类的地方,它将采用处理程序序列,并在执行时以请求的序列执行。
有没有其他方法可以做到这一点以及如何执行相同的操作。我的做法对吗?
public class Main
{
public static void main(String[] args) throws NoSuchMethodException, SecurityException
{
List handler = new ArrayList<>();
handler.add("job2");
handler.add("job1");
handler h = new handler(handler);
h.execute();
}
}
下面是我的处理程序类,它将采用序列并执行
public class handler {
List<handler> listhandler;
enum jobs {
job1 {
@Override
public void executeHandler() {
System.out.println("This is the job1");
}
},
job2 {
@Override
public void executeHandler() {
System.out.println("This is the job2");
}
};
public abstract void executeHandler();
}
public handler(List<handler> hand) {
this.listhandler = hand;
}
public void execute() {
for(handler ht : this.listhandler) {
ht.getJobs().executeHandler();
}
}
private jobs getJobs() {
return null;
}
}
您的handler
班级需要List<handler>
,但您正在将字符串添加到列表中。相反,您应该jobs
在这两种情况下使用。该jobs
枚举本身看起来还好。
public static class Handler {
List<Job> listhandler; // list of jobs
public Handler(List<Job> hand) {
this.listhandler = hand;
}
public void execute() {
for(Job ht : this.listhandler) {
ht.executeHandler();
}
}
}
public static void main(String args[]) {
List<Job> handler = new ArrayList<>();
handler.add(Job.job2); // add jobs, not job names
handler.add(Job.job1);
Handler h = new Handler(handler);
h.execute();
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句