2

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

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

但我不想调用序列方法:

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

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

如果我可以使用 Java 中的循环调用它们会更好。有人可以给我一些建议吗?

谢谢!

.

4

3 回答 3

3

尝试类似:

   for (int i=0;i<N;i++) {
      try {
        obj.getClass().getMethod("method"+i).invoke(obj);
      } catch (Exception e) {
         // give up
         break;
      }
    }
于 2012-09-24T13:37:04.117 回答
2
public static void callABunchOfMethods(Object obj, int count) throws Exception {
  for (int i = 1; i <= count; i++)
    obj.getClass().getMethod("method"+i).invoke(obj);
}
于 2012-09-24T13:37:00.537 回答
1

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

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

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

于 2012-09-24T13:38:48.897 回答