В настоящее время я сталкиваюсь с проблемами при интеграции существующего API-интерфейса Java Piketec TPT (http://javadoc.jenkins.io/plugin/piketec-tpt/com/piketec/tpt/api/package-summary.html) в проект Java с использованием Reflection.
TPI Api предоставляет интерфейс под названием "TptApi", который содержит несколькоабстрактные методы, которые используются для доступа к проектам TPT.
Я уже интегрировал другие API, такие как Dox4j-API, где экземпляр класса использовался в качестве цели вызова. Очевидно, это неправильный способ доступаметод из интерфейса.
Моя цель - получить доступ к методу "OpenResult openProject (File f)" из интерфейса TptApi (http://javadoc.jenkins.io/plugin/piketec-tpt/com/piketec/tpt/api/TptApi.html#openProject-java.io.File-).
Мой код:
ClassLoader cl = new URLClassLoader(...);
Map c = new HashMap();
File file = new File("test.prj");
c.put("TptApi", cl.loadClass("com.piketec.tpt.api.TptApi"));
c.put("OpenResult", cl.loadClass("com.piketec.tpt.api.OpenResult"));
//The way I did it with 'normal' classes, not applicable with the interface:
//Object target = ((Class) c.get("TptApi")).newInstance();
OpenResult or = (OpenResult)((Class) c.get("TptApi")).getMethod("openProject", new Class[]{File.class}).invoke(target, new Object[]{_file});
Так как мне получить доступ к абстрактным интерфейсным методам с помощью Reflection?