反射-Class对象功能概述和获取Field

反射-Class对象功能

   

复制代码
 public static void main(String[] args) throws Exception {
        //获取Person的Class对象
        Class personClass =Person.class;

        //Constructor<T> getConstructor(类<?>...parameterTypes)
        Constructor constructor = personClass.getConstructor(String.class, int.class);
        System.out.println(constructor);
        //创建对象
        Object person = constructor.newInstance("张三", 23);
        System.out.println(person);

        System.out.println("======================");

        Constructor constructor1 = personClass.getConstructor();
        System.out.println(constructor1);
        //创建对象
        Object o = constructor1.newInstance();
        System.out.println(o);

        
    }
复制代码

 

反射-Class对象功能-获取Field

 

复制代码
 public static void main(String[] args) throws Exception {
        //获取Person的Class对象
        Class personClass =Person.class;

        //获取指定名称的方法
        Method cat = personClass.getMethod("eat");
        Person person = new Person();
        //执行方法
        cat.invoke(person);

        Method cat1 = personClass.getMethod("eat", String.class);
        //执行方法
        cat1.invoke(person,"");

        System.out.println("==============================");

        //获取所有public修饰的方法
        Method[] methods = personClass.getMethods();
        for (Method method : methods) {
            String name = method.getName();
            System.out.println(name);
//            method.setAccessible(true);
        }

        //获取类名
        String className = personClass.getName();
        System.out.println(className);

    }
复制代码

 

posted @   漁夫  阅读(25)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示