• 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;
        }
    }
    运行结果

     

  • 相关阅读:
    冰狐智能辅助入门教程
    基于Canal实现MySQL 8.0 数据库数据同步
    Day23-JDBC
    jvm 自带调优工具一览
    Kubernetes:(五)Pod进阶(资源限制、健康检查)
    Qt/C++编写视频监控系统81-Onvif报警抓图和录像并回放
    真正的测试 =“半个产品+半个开发”?
    Java-IO流之字节输入流(中篇)
    B. The Walkway Codeforces Round 893 (Div. 2)
    【项目经验】Redis Sentinel从工程中下线并对业务迁移-进行中
  • 原文地址:https://blog.csdn.net/qq_41632427/article/details/125478406