反射添加方法

有没有办法通过反射 添加方法A类的public void d(){}方法通过反射添加到C类的里面去

反射不能用来添加方法或属性,他能够知道类名而不实例化对象的状态下,获得对象的属性或调用方法。一般都是在配置文件中才用的。hibernate的映射文件,spring的配置文件都是通过反射做的。

哥们要先理解反射的作用:
1.在运行时判断任意一个对象所属的类;
2.在运行时构造任意一个类的对象;
3.在运行时判断任意一个类所具有的成员变量和方法;
4.在运行时调用任意一个对象的方法;
你说的可以通过动态代理来实现
送相关代码:
--------------IC 接口
[code="java"]
public interface IC {
public void demo();
}
[/code]

--------------C类实现类
[code="java"]
public class C implements IC {
public void demo()
{
System.err.println("C类的demo方法");
}
}
[/code]
-------------委托类
[code="java"]
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
public class CHandler implements InvocationHandler {
private Object objOriginal;
public CHandler() {

}
public CHandler(Object obj) {
    this.objOriginal = obj ;
}

public Object invoke(Object proxy, Method method, Object[] args)
        throws Throwable {
    Object result ;
    result = method.invoke(this.objOriginal ,args);//在调用
    ddd();
    return result;
}
private void ddd() {
    A c=new A();
    c.d("demojava说的对,请结贴");
}

}
[/code]
-------------测试代码:
[code="java"]
class demo {
public static void main(String[] args) {
IC demo1 = new C();

IC proxy = (IC) Proxy.newProxyInstance(

demo1.getClass().getClassLoader(),

demo1.getClass().getInterfaces(),

new CHandler(demo1));

proxy.demo();

}
}

[/code]

asm java字节码编程....

如果喜欢动态代理方式..可以参考cglib