zoukankan      html  css  js  c++  java
  • java反射原理及Class应用

    反射:框架设计灵魂

      框架:半成品软件,可以在框架基础上进行软件开发,简化编码

      反射:将类的各个组成部分封装我其他对象,这就是反射机制

       好处:

         1.可以在程序运行过程中,操作这些对象

         2.可以解耦,提高程序的可扩展性

           获取Class对象的方式:

           1.Class.forName(“全类名”);将字节码文件加载进内存,返回Class对象 (多用于配置文件将类名定义在配置文件中,读取文件加载类)

           2.类名.Class;通过类名的属性.class获取(多用于参数传递) 

           3.对象.getClass();getClass()方法在Object类中定义着( 多用于对象的获取字节码的一个方式)

         结论:

           同一个字节码文件(*.class)在程序巡行的过程中,只会被加载一次,不论通过那一种方式获取Class对象都是同一个。

          Class对象的功能:

         获取功能:

             1.获取成员变量们:

                 Field[]getFields()  :获取所有public修饰的成员变量

          Field getField(String name) : 获取指定名称的 public修饰的成员变量

              FieId[ ] getDeclaredFieIds()获取所有成员变量,不考虑修饰符

              FileId getDeclaredFieId(String name);

           2.获取构造方法们:

                Constructor<?>[ ] getConstructors()

                Constructor<T> getConstructor(类<?>… parameterTypes)

             Constructor<T> getDeclaredConstructor(类<?>… parameterTypes)

                Constructor<?>[ ] getDeclaredConstructors();

           3.获取成员方法们

                 Method[ ] getMethod()

              Method getMethod(String name,类<?>… parameterType)

                 Method[ ] getDeclaredMethod()

               Method getDeclaredMethod(String name,类<?>… parameterType)

            4.获取类名

            String getName();

             Field:成员变量

              操作:

               1.设置值

               void set(Object obj,Object value);

               2.获取值

               get(Object obj)

               3.忽略访问权限修饰符的安全检查

               setAccessible(true):暴力反射

                Constructor:构造方法

               创建对象:        

               newInstance(Object… initargs)

       如果使用空参数构造方法创建对象,操作可以简化Class对象的newInstance方法

  • 相关阅读:
    shell笔记
    全引用与部分引用
    R语言 EFA(探索性因子分析)
    Markdown 基本使用
    Oracle截取字符串和查找字符串
    ggplot画基本图形类型
    ggplot画图笔记
    用R语言 画条形图(基于ggplot2包)
    Git基本操作
    R语言为数据框添加列名或行名
  • 原文地址:https://www.cnblogs.com/love-menglong/p/11160058.html
Copyright © 2011-2022 走看看