通过反射向类添加新方法

Tap*_*ena 7 java reflection

是否可以通过java中的反射向类添加方法?

public class BaseDomain {

    public BaseDomain(){
        Field[] fields = this.getClass().getDeclaredFields();
        for(int i=0; i<fields.length; i++){
            String field = fields[i].toString();

            String setterMethod = "public void set" + field.toLowerCase();

            //Now I want to add this method to this class.

        }
    }
}
Run Code Online (Sandbox Code Playgroud)

Bor*_*der 11

不,不是通过反思.

反思询问类及其成员,您可以更改字段但不能创建新字段.您无法添加新方法.

您可以使用字节码操作库向类添加方法; 但你为什么要这样?

除了通过反射之外,你无法调用这些方法,因为它们在编译时显然不存在.

也许看看项目Lombok - 这是一个注释预处理器,可以在编译时向类添加方法.只要您的类被正确注释,它就会自动添加getter和setter.