0

リフレクションを使用してこの内部メソッドを呼び出す方法がわかりません。これが私が思いついたものです。ただし、機能しません。

interface Foo {
   void callMe();
} 

 public class Tester{

 public TreeMap<Integer, Foo> testMap = new TreeMap<Integer, Foo>();

 public void foo(Foo foo, Integer d) {
    testMap.put(d, foo);
}

 public void testCase() { 
    for (Integer key: testMap.keySet()) {
       testMap.get(key).callMe(d);   
    }
}

public static void main(String[] args) {

 Tester testUser = new tester();

 testUser.foo(new Foo(){ void callMe(Integer d){ 
   System.out.println("Test " + d); } 
  }, 5);

testUser.foo(new Foo(){ void callMe(Integer d){ 
   System.out.println("Test Two " + d); } 
  }, 10);

   testUser.testCase();

 }
}

コードを実行するには、コードにどのような変更を加える必要がありますか?

4

1 に答える 1

1

a) これはリフレクションではありません

testUser.foo(...)b)代わりに使用する必要がありますtester.foo(...)

于 2013-11-09T01:59:00.480 に答える