假设我有一些像这样的方法:
method1()
method2()
method3()
method4()
method5()
但我不想调用序列方法:
obj.method1()
obj.method2()
obj.method3()
obj.method4()
obj.method5()
这很无聊。如果我添加新方法:method6()
,我需要添加手册:obj.method6()
如果我可以在Java中使用循环调用它们会更好。有人可以给我一些建议吗?
感谢!
答案 0 :(得分:3)
尝试类似:
for (int i=0;i<N;i++) {
try {
obj.getClass().getMethod("method"+i).invoke(obj);
} catch (Exception e) {
// give up
break;
}
}
答案 1 :(得分: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);
}
答案 2 :(得分:1)
我不知道为什么你的方法使用了这种命名对话。如果它不仅是例如,您应该考虑为它们找到更好的解决方案。今天对你而言显而易见,但你的代码的追随者并不是真的。
关于手动添加假设的method6
。我认为添加一行代码比减少代码并且损失代码的清晰度更重要。
我的建议是,你应该使用Facade pattern