zoukankan      html  css  js  c++  java
  • java 反射

    获取student的class对象

            Class cls = Student.class;

    反射变量

    1.获取所有public的变量

            Field[] fields = cls.getFields();
            for (Field field : fields) {
                System.out.println(field);
            }

    public java.lang.String Student.name

    2.获取指定的某个变量

    要抛出异常

            Field name = cls.getField("name");
            Student stu=new Student();
            //设置值
            name.set(stu,"tom");
            //读取值
            Object o = name.get(stu);
            System.out.println(o);

    tom

    3.获取所有的变量,包括私有的

    Field[] declaredFields = cls.getDeclaredFields();
            for (Field declaredField : declaredFields) {
                System.out.println(declaredField);
            }

    private int Student.age
    public java.lang.String Student.name

    4.获取指定的变量,包括私有的

    私有的不能直接被访问 : Exception in thread "main" java.lang.IllegalAccessException: class Test cannot access a member of class Student with modifiers "private"

            Field age = cls.getDeclaredField("age");
            //暴力反射
            age.setAccessible(true);
            age.set(stu,99);
            Object o1 = age.get(stu);
            System.out.println(o1);

    反射构造

           Constructor constructor = cls.getConstructor(int.class, String.class);
            System.out.println(constructor);
            Object o = constructor.newInstance(19, "tom");
            System.out.println(o);

    反射函数

    //反射获得方法 ,参数1传入方法名称 ,参数2类
            Method method = cls.getMethod("ok",String.class);
            System.out.println(method);
            Student stu=new Student();
            //执行方法,参数1对象,参数2方法参数
            method.invoke(stu,"uuuu");
    
            //获取所有公有方法
            Method[] methods = cls.getMethods();
    
            //全部方法同理
  • 相关阅读:
    【根据条件添加属性】vue页面标签根据条件添加属性
    serialVersionUID
    onsubmit="return navTabSearch(this);"
    MyEclipse改变项目的编码方式
    Tomcat端口被占用
    可拖动图层
    顶部可以折叠的菜单工具栏
    转---- javascript prototype介绍的文章
    网页右侧弹出有缓冲效果的工具栏
    根据时间改变背景
  • 原文地址:https://www.cnblogs.com/buchizaodian/p/13363054.html
Copyright © 2011-2022 走看看