아마 내가 질문을 오해하고 있습니다. (알려 주시면 알려주세요.)하지만 시작 하시겠습니까?
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;
import java.util.Arrays;
public class Main
{
public static void main(final String[] argv)
{
final Object object;
final InvocationHandler handler;
final Runnable runnable;
final Comparable<Object> comparable;
handler = new InvocationHandler()
{
public Object invoke(final Object proxy,
final Method method,
final Object[] args)
throws Throwable
{
System.out.println(proxy.getClass());
System.out.println(method);
System.out.println(Arrays.toString(args));
return (0);
}
};
object = Proxy.newProxyInstance(Main.class.getClassLoader(),
new Class[] {
Runnable.class,
Comparable.class,
},
handler);
runnable = (Runnable)object;
runnable.run();
comparable = (Comparable<Object>)object;
comparable.compareTo("Hello");
}
}
단순하다면 나는 진지하게 몸부림 친다. –
잘 돌아가는 (0) 것은 좀 까다 롭습니다 - 각 메소드에 대해 적절한 유형을 리턴해야합니다 (실행에 대해서는 null이고 compareTo에 대해서는 null). 또한 compareTo에서 할 수있는 일이 내게 모두 명확하지는 않지만 :-) 나는 그것이 그렇게 단순하다고 믿습니다. – TofuBeer
매력처럼 작동 –