Как вызвать метод с универсальным типом параметра, таким как SortedMap> - PullRequest
0 голосов
/ 27 января 2012

Как вызвать метод в объекте, где этот метод имеет универсальный параметр типа SortedMap<Integer,Vector<double[]>>?

// "c" is actually a class of mine that extends Thread
Class<?> cls = Class.forName(c.getClass().getName());

Method meth = cls.getMethod("add", new Class[]{??????});  // What do I put here?

meth.invoke(c, allData);

Не уверен, что поместить в массив new Class[]{}.Я пытался SortedMap.class, но это не сработает

Ответы [ 2 ]

1 голос
/ 27 января 2012

Class.getMethod() использует вараг в эти дни. Вы пробовали

 Method meth = cls.getMethod("add", Map.class);
0 голосов
/ 27 января 2012

У меня работает следующий код:


public class MyClass {</p>

<pre><code>public void test(ArrayList<String> p) {
    System.out.append("INVOKED !!");
}

public static void main(String[] args) throws NoSuchMethodException, ClassNotFoundException, IllegalAccessException, IllegalArgumentException, InvocationTargetException {
    MyClass myClass = new MyClass();
    Class<?> klass = Class.forName("MyClass");

    Method m = klass.getMethod("test", ArrayList.class);
    m.invoke(myClass, new ArrayList<String>());
}

}

...