0

私は仕事の問題を解決しなければなりませんが、私は Java にあまり堪能ではないので、それに行き詰まっています。

Map<String, String>短くするために、値がループ内にある変数の型の名前を定義する場所を通過するループがあります。さまざまな方法で回避策を試みました。私はリフレクションといくつかの汎用クラスを使用しましたが、問題は常に同じです。その型を判別できないため、プログラムはその生成されたオブジェクトのメソッドにアクセスできません。オブジェクトが呼び出されるとArrayList<String>、プロジェクトのメインクラスで定義された を受け取り、それを 1 つに追加する必要があります (ちなみに、Eclipse はエラーを表示しません。実行時例外が発生します)。

質問は次のとおりです。ループ内の文字列から動的型の変数を割り当てて (リフレクションを使用すると仮定します)、そこに格納されているオブジェクトからメソッドにアクセスするにはどうすればよいですか?

4

2 に答える 2

3

これまでのところ、次のようになるはずです。

for (Map.Entry<String, String> entry : myMap.entrySet()){

    Class<?> clazz = Class.forName(entry.getValue());
    ADBBean bean = (ADBBean)clazz.newInstance();
    Method method = clazz.getMethod("methodName", String.class, Integer.class, etc);
    method.invoke(bean, "blah", 145);
}
于 2012-10-29T11:02:39.647 に答える
0

テンプレート/ジェネリック プログラミングを探していると思います。 http://en.wikipedia.org/wiki/Generics_in_Java

于 2012-10-29T10:57:09.110 に答える