Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/382.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 按特定顺序调用方法_Java_Reflection - Fatal编程技术网

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遍才能理解发生了什么。如果你不想把它们放在其他代码的中间,你可以创建一个名为 LooPult的方法,它按正确的顺序调用所有的<代码>加载*>代码>方法。然后,您只需调用
loadAll()
即可加载应用程序需要加载的所有内容。@ΦXocę웃Пepeúpaツ 不,基本上首先我会执行loadInstances(),这使得loadSql()等需要新的实例。因此,如果这有意义的话,我需要按特定的顺序使用它们。@Arraying,那么您可能需要在编程时(或在一般情况下)集中精力做一些严肃的工作。忘记会导致糟糕的产品,使用反射因为“你会忘记”会导致更糟糕的产品。为什么在同一个类中有这么多
load()
方法?这个班做得太多了吗?也许应该有一个
列表
和call.load()。