Я видел, как вы ответили на мой комментарий, но мне до сих пор не ясно, почему вы хотите сгенерировать код для последующей упаковки в банку, просто введите его:)
Теперь, если вам нужен типизированный API-интерфейс с одинаковым поведением для всех методов, вы можете предоставить динамический прокси-сервер для данного интерфейса (в связи с этим возникает вопрос о том, как создать интерфейс:)
Вот пример, где все вызовы всех методов MyInterface будут обрабатываться методом invoke (просто добавьте методы в интерфейс для его проверки) ...
package test;
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;
public class Test {
interface MyInterface {
String methodOne(String s);
String methodTwo(String s, Integer i);
}
static MyInterface proxy = (MyInterface) Proxy.newProxyInstance(
MyInterface.class.getClassLoader(),
new Class[] { MyInterface.class }, new InvocationHandler() {
public Object invoke(Object proxy, Method method, Object[] args)
throws Throwable {
StringBuilder result = new StringBuilder();
for (Object arg : args) {
result.append(arg.toString());
}
return result.toString();
}
});
public static void main(String[] args) {
System.out.println(proxy.methodOne("hello"));
System.out.println(proxy.methodTwo("world", 5));
}
}