• java175-method类反射机制


    //class反射编程
    //定义一个学生类
    public class test124 {
        public String name;
        protected int age;
     
        double height;
        private double money;
     
        public void setName(String name) {
            this.name = name;
        }
     
        public String getName() {
            return name;
        }
     
        public int getAge() {
            return age;
        }
     
        public void setAge(int age) {
            this.age = age;
        }
     
        public test124(String name, Integer age){
            this.name=name;
            this.age=age;
            System.out.println( "调用有参构造方法" );
        }
     
        public test124(String name,int age,double money){
            this.name=name;
            this.age=age;
            this.money=money;
        }
        //看书
        public void learn(BookRead book){
            System.out.println( "我的名字"+name+ "我正在学习"+book.getName());
        }
        //奔跑
        public void run(){
            System.out.println( "我们喜欢奔跑" );
        }
    }
    定义一个method类

    import java.lang.reflect.Field;
    import java.lang.reflect.Method;
    import java.lang.reflect.Modifier;
     
    //method类反射机制
    public class test129 {
        public static void main(String[] args){
            try {
                Class<?> stuCla = Class.forName( "test124" );
                test124 stuObj=new test124( "geyao",12 );
                BookRead book=new BookRead();
                book.setName( "歌谣" );
                Method learnMet=stuCla.getMethod( "learn", BookRead.class);
                learnMet.invoke( stuObj,book );
                //获取非公共方法
     
                Method runMet=stuCla.getDeclaredMethod( "run");
                if(!runMet.isAccessible()){
                    runMet.setAccessible( true );
                    runMet.invoke( stuObj );
                }
            }catch (Exception e){
                e.printStackTrace();
            }
        }
    }
    定义一个bookread类

    public class BookRead {
        private String name;
     
        public void setName(String name) {
            this.name = name;
        }
     
        public String getName() {
            return name;
        }
    }
    运行结果

     

  • 相关阅读:
    Js进行base64编码、解码、中文乱码
    突破瓶颈,火力全开!揭秘六西格玛管理培训公司如何助你一臂之力
    线程安全集合:CopyOnWriteArrayList源码分析
    Hive 和 HDFS、MySQL 之间的关系
    DataEase 介绍、使用技巧
    ARFoundation系列讲解 - 78 AR室内导航三
    【Python】快速入门
    最详解的正则表达式------元字符
    安装部署 Kubernetes 仪表板(Dashboard)
    python根据文件创建时间删除文件
  • 原文地址:https://blog.csdn.net/qq_41632427/article/details/125478406