【问题标题】:How to call multiple methods using loop in Java?如何在Java中使用循环调用多个方法?
【发布时间】:2012-09-15 23:25:54
【问题描述】:

假设我有一些这样的方法:

method1()
method2()
method3()
method4()
method5()

但我不想调用序列方法:

obj.method1()
obj.method2()
obj.method3()
obj.method4()
obj.method5()

这很无聊。如果我添加一个新方法:method6(),我需要添加手册:obj.method6()

如果我可以在 Java 中使用循环调用它们会更好。谁能给我一些建议?

谢谢!

.

【问题讨论】:

  • 在您这样做之前,请考虑这些方法是否可以更好地命名,以及仅编写一个调用所有方法的方法是否最简单。
  • 给你的obj添加一个方法来调用方法序列不是更好吗? (我假设这些是真正的方法名称。)

标签: java methods call


【解决方案1】:
public static void callABunchOfMethods(Object obj, int count) throws Exception {
  for (int i = 1; i <= count; i++)
    obj.getClass().getMethod("method"+i).invoke(obj);
}

【讨论】:

    【解决方案2】:

    尝试类似:

       for (int i=0;i<N;i++) {
          try {
            obj.getClass().getMethod("method"+i).invoke(obj);
          } catch (Exception e) {
             // give up
             break;
          }
        }
    

    【讨论】:

      【解决方案3】:

      我不知道你为什么对你的方法使用这样的命名惯例。如果不仅仅是例如,您应该考虑为他们找到更好的解决方案。今天这对你来说可能是显而易见的,但对于你的代码的追随者来说却不是。

      关于手动添加假设的method6。我认为添加一行代码总比减少它并失去代码的清晰度要好。

      我的建议是,你应该使用Facade pattern

      【讨论】:

        猜你喜欢
        • 2021-08-14
        • 1970-01-01
        • 2011-01-26
        • 2021-12-15
        • 1970-01-01
        • 2017-06-02
        • 2011-12-16
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多