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{}

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

  • 相关阅读:
    记一次由于缓存导致的bug
    3 Task中的一些枚举 创建时候的、continue时候的
    2 Task中的延续和7种阻塞
    1 Task的简单实用
    关于内存溢出遇到的两种情况
    6 Wcf使用Stream传输
    5 wcf双工
    4 WCF中的RPC和OneWay
    3 WCF一些基础铺垫
    什么是三元表达式?“三元”表示什么意思?
  • 原文地址:https://www.cnblogs.com/myz666/p/8446691.html
Copyright © 2011-2022 走看看