zoukankan      html  css  js  c++  java
  • 十六、反射

    public class ReflectDemo {
    
        /**
         * @param args
         * @author MYZ
         * 在面向对象的世界里,万事万物皆对象,类是java.lang.Class类的实例对象
         */
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            Cat c1=new Cat();//c1是Cat类的一个实例对象
            
            //Cat这个类,也是一个实例对象,是java.lang.Class类的实例对象,我们称为该类的类类型
            
            //1.第一种表示方式
            Class clazz1=Cat.class;
            
            //2.第二种表示方式
            Class clazz2=c1.getClass();
            
            System.out.println(clazz1==clazz2);//true
            /**
             * ,一个类只可能是Class类的一个实例对象,所有表示方法表示的都是同一个,而且都表示Cat类的类类型
             */
            
            //3.第三种表示方式
            try {
                Class clazz3=Class.forName("com.myz.demo.Cat");
                
                System.out.println(clazz2==clazz3);//true
            } catch (ClassNotFoundException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            
            //4.通过类类型创建对象实例
            try {
                Cat cat2=(Cat) clazz1.newInstance();//调用无参构造方法
            } catch (InstantiationException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (IllegalAccessException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
        
    }
    class Cat{}

    其实通过反射,我们能知道一个类有哪些方法,哪些字段

  • 相关阅读:
    Mybatis的传值(四种方式)
    用现有表往另一张表插数据
    eclipse 项目发布到tomcat中(转)
    git 基本使用
    (转) Sping的事务传播
    <mvc:annotation-driven/>浅析
    Python函数参数的五种类型
    使用alembic进行数据库版本管理
    Center OS 7 安装 $$
    Python3.x 配置原生虚拟环境
  • 原文地址:https://www.cnblogs.com/myz666/p/8446691.html
Copyright © 2011-2022 走看看