以任何顺序执行处理程序

莫希特

我有一个类/处理程序列表: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;
        }


     }
tobias_k

您的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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章