zoukankan      html  css  js  c++  java
  • java学习——java中的反射学习笔记

    Java——reflect

    一.Class类的使用
    什么是Class类?
    1:在面向对象的世界中,万事万物皆对象。

    java语言中,静态的成员,普通数据类型类是不是对象呢?

    是,对象!是类的对象!

    类是谁的对象吗?

    类也是是对象,类是java.lang.Class 类的实例对象!

     现在有个类它的名字就是Class!  
     There is a class name Class.
    

    任何一个类都是Class的实例对象,这种实例对象有三种表示方式

    class Foo{
    }
    Foo f = new Foo();
    //第一种  
    Class c1 = 类名.class;  //Class c1 = Foo.class;
    //第二种  
    Class c2 = 对象.getClass();  //Class c2 = f.getClass();
    
    //c1和c2 表示了Foo类的类 类型(class type)  
    
    //第三种 使用class.forName();
    Class c3 = class.forName("XXX.XX.Foo");
    
    

    2.动态加载和静态加载

    编译时刻加载类是静态加载,运行时刻加载类是动态加载类 。

    new 创建对象是静态加载类,在编译时刻就需要加载所有可能使用到的类。 如何解决在编译时候忽略那些不需要加载的类呢?

    解决方案:通过动态加载类!使用Class.forName("");

    二.方法的反射

    基本的数据类型。void的关键字都存在类 类型!

    1.区别

    getName  : 基本和引用类型!  
    
    getSimpleName : 引用类型不包括包名,只有类的名称。
    

    
    getMethods(): 方法获取的是所有public的函数,包括父类继承而来的  
    
    getDeclaredMethods(): 获取的是所有该类自己声明的方法,不问访问权限 
    

    三.成员变量的反射

    成员变量是 java.lang.reflect.Field 的类对象!

    Field 类封装了关于成员变量的操作!

    getField():获取的是所有的public的成员变量的信息  
    
    getDeclaredFields():获取的是该类自己的成员变量的信息
    
    

    四.构造函数的反射

    构造函数也是对象,是java.lang.Constructor中封装了构造函数的信息。

    getConStructors 获取所又的public的构造函数 
    
    getDeclaredConstructors 得到的是自己申明的所有的构造函数
    

    5.java的类加载机制

    反射都是运行时刻执行的!也就是动态加载!

    集合中泛型的使用?

    集合中的泛型是防止错误输入的,只有编译阶段有效, 绕过编译就无效了!也就是说泛型只在编译的时候有用,所以我们可以通过方法的反射来操作,绕过编译!


    使用传送技能,让你快速学习反射知识!

    慕课学习反射视频地址http://www.imooc.com/video/3738


    欢迎访问我的csdn博客,我们一同成长!

    "不管做什么,只要坚持下去就会看到不一样!在路上,不卑不亢!"

    博客首页http://blog.csdn.net/u010648555

  • 相关阅读:
    LAMP的搭建
    linux利用命令重置大量密码
    CSS的应用下
    Day13 CSS的与应用
    Day12 CSS简单用法
    Day12 前端html
    Day11 数据库的基本语法(偏重于查询)
    Java-->把txt中的所有字符按照码表值排序
    Java-->将txt文件的所有行反转
    Java-->在txt文件每一行前加行数和冒号
  • 原文地址:https://www.cnblogs.com/aflyun/p/6501687.html
Copyright © 2011-2022 走看看