У меня есть шаблон JET, предназначенный для генерации кода для класса реализации интерфейса. У меня возникают проблемы с созданием исполняемого тестового класса, который печатает этот сгенерированный код, потому что я не могу получить объект для аргумента метода generate
, созданного из шаблона JET.
Я хочу, чтобы тестовый класс работал примерно так:
/**
* An executable test class that prints out exemplary generator output
* and demonstrates that the JET template does what it should.
*/
public class TestClass {
public static void main(String args[]) throws ClassNotFoundException, InstantiationException, IllegalAccessException {
String className = "A"; // "A" is the name of the interface in the same package.
Class c = Class.forName(className);
Object o = c.newInstance();
Q2Generator g = new Q2Generator(); // Class created from the JET Template
String result = g.generate(o);
System.out.println(result);
}
}
Но, очевидно, c.newInstance();
не работает для интерфейса. Есть ли другой способ, которым я мог бы передать объект интерфейса методу generate
? Мне нужен объект интерфейса, потому что в методе generate
Q2Generator он получает информацию об объявлениях метода в интерфейсе из аргумента объекта.
Я не уверен, обеспечивает ли это достаточный контекст, но если этого недостаточно, есть еще детали в другом вопросе, который я задал здесь: Использование JET для генерации кода: отступ кода
Спасибо.