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

     

  • 相关阅读:
    面试-J.U.C包的梳理
    活动图高阶讲解-03
    python+django_vue旅游酒店预订出行订票系统pycharm项目lw
    初学者设计PCB,如何检查光绘文件的断头线
    五、伊森商城 前端基础-Vue v-text&v-html&v-bind&v-model p23
    基于单片机的多功能电子万年历系统
    js 中 Map 和 Set 区别
    Stack Overflow开发者调查发布:AI将如何协助DevOps
    三、微积分
    一文掌握 HardwareBuffer 的使用
  • 原文地址:https://blog.csdn.net/qq_41632427/article/details/125478406