<返回更多

java反射

2022-08-29    从事java的小白
加入收藏

一、创建类

import lombok.Data;

@Data
public class TestReflex{

    private String name;

    private int count;

    public int getResult(int num){
        return count=count+num;
    }

    protected  String setName(String name){
        return name;
    }
}

 

二、对类进行操作

public static void main(String[] args) throws ClassNotFoundException,
        IllegalAccessException, InstantiationException, NoSuchMethodException, InvocationTargetException {
		//
    Class<?> cls = Class.forName("xxx.xxx.xxx.TestReflex");
    Object obj = cls.newInstance();
     //调用非私有的方法     
    Method setFunc=cls.getMethod("getResult",int.class);
    Object o=setFunc.invoke(obj,1);
    System.out.println(o);
    //获取指定的非公有类型的方法
    setFunc=cls.getDeclaredMethod("setName",String.class);
    //可以对一个实体类的访问级别进行重新的设定
    setFunc.setAccessible(true);
    o=setFunc.invoke(obj,"张三");
    System.out.println(o);
    //只能获取非私有属性
    Field[] fields=cls.getFields();
    for(Field field:fields){
        System.out.println(field.getType()+"--"+field.getName());
    }
    //可以获取私有的属性  获取类中所有的属性(包括私有和仅有属性)
    Field[] fields1=cls.getDeclaredFields();
    for(Field field:fields1){
        System.out.println(field.getType()+"--"+field.getName());
    }
    //getMethods() : 获取所有的非私有方法对象数组  获取方法
    Method[] methods=cls.getMethods();
    for(Method method:methods){
        System.out.println(method.getName());
    }
}

 


 

三、反射的优点及缺点

1.反射的优点

2.反射的缺点

声明:本站部分内容来自互联网,如有版权侵犯或其他问题请与我们联系,我们将立即删除或处理。
▍相关推荐
更多资讯 >>>