Java 按特定顺序调用方法
基本上,我有一些Java 按特定顺序调用方法,java,reflection,Java,Reflection,基本上,我有一些loadSomething()void方法,我需要执行它们。因为我不想只拥有: //not actual names loadMethod1(); loadMethod2(); 等等 我决定考虑所有的方法。这是我的 Arrays.stream(getClass().getDeclaredMethods()) .filter(method -> method.getName().startsWith("load")) .forEach(method ->
loadSomething()
void方法,我需要执行它们。因为我不想只拥有:
//not actual names
loadMethod1();
loadMethod2();
等等
我决定考虑所有的方法。这是我的
Arrays.stream(getClass().getDeclaredMethods())
.filter(method -> method.getName().startsWith("load"))
.forEach(method -> {
try {
method.invoke(instance);
} catch (IllegalAccessException | InvocationTargetException e) {
e.printStackTrace();
}
});
我不知道这是好代码还是坏代码,如果不是最好的,请告诉我
问题是,这些方法必须按一定的顺序调用。然而,我在Javadocs中读到,getDeclaredMethods()
方法不按特定顺序返回方法。所以我不知道怎么做。我在考虑将它们重命名为load1
,load2
,load3
等等,因为这样我可以按正确的顺序对它们进行排序
因此,我想知道以特定顺序调用方法的最佳方式是什么。如果不使用反射,调用这些方法的顺序是什么?按字母顺序???我会避免这样做。您的代码变得难以阅读(并且随着反射,应用程序变得更慢)。更好地“浪费”20行代码,并按正确的顺序调用20个clear方法,而不是少读10遍才能理解发生了什么。如果你不想把它们放在其他代码的中间,你可以创建一个名为
loadAll()
即可加载应用程序需要加载的所有内容。@ΦXocę웃Пepeúpaツ 不,基本上首先我会执行loadInstances(),这使得loadSql()等需要新的实例。因此,如果这有意义的话,我需要按特定的顺序使用它们。@Arraying,那么您可能需要在编程时(或在一般情况下)集中精力做一些严肃的工作。忘记会导致糟糕的产品,使用反射因为“你会忘记”会导致更糟糕的产品。为什么在同一个类中有这么多load()
方法?这个班做得太多了吗?也许应该有一个列表
和call.load()。