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

     

  • 相关阅读:
    TL-Link WAR308路由器无线模式下一会有网一会无
    不同时代下的中秋之美--python学习应用心得
    Xshell导入导出会话
    Echarts 教程一
    9.25day5---Qt
    【Maven】Could not transfer artifact xxx from/to xxx的解决方案
    Java手写链表和案例拓展
    ArcGis for JavaScript 4.23版本接入国家天地矢量地图
    Jsp+MySQL学生学籍信息管理系统 Java毕业设计
    数据治理的数字画像
  • 原文地址:https://blog.csdn.net/qq_41632427/article/details/125478406