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。コードを 1 行追加することは、コードを減らしてコードの明瞭さを失うよりも優れていると思います。

私の提案は、Facade パターンを使用する必要があるということです

于 2012-09-24T13:38:48.897 に答える