zoukankan      html  css  js  c++  java
  • 反射随笔

    射:框架设计的灵魂
        框架:可在框架基础上进行软件开发,简化编码
        反射:将类的各个部分封装为其他对象

    好处:
        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修饰的成员变量
            Field[] getDeclareFields()获取所有成员变量
            field getDeclareField(String name)
            获取构造方法们
            Constructor<?> getConstructors()
            Constructor<T> getConstructor(类<?>...parameterTypes)
            Constructor<?> getDeclareConstructors()
            Constructor<T> getDeclareConstructor(类<?>...parameterTypes)
            获取成员方法们
            Method[] getMethods()
            Method[] getMethod(String name,类<?>...parameterTypes)
            Method[] getDeclareMethods()
            Method[] getDeclareMethod(String name,类<?>...parameterTypes)    
            获取类名
            String getName()


        Field:成员变量
        1.设置值
        set(Object obj,Object value)
        2.获取值
        get(Object obj)


        忽略访问权限修饰符的安全检查
        d.setAccessible(true) //暴力反射

        Constructor:构造方法
        创建对象
        newInstance()
        若使用空参数构造方法创建对象,操作可以简化:Class对象的newInstance

        Method:方法对象
        执行方法:
            Object invoke(Object obj.....args)
        获取方法名称:
        String getName

  • 相关阅读:
    poj2594 Treasure Exploration 二分匹配之最小路径覆盖+传递闭包
    Qsort和Sort排序函数用法
    poj1696 Space Ant 卷包裹法 向量叉积比较
    poj1113 Wall 凸包问题 官方数据
    poj2187 Beauty Contest 凸包求点集的直径
    printf 里面的 %lf 要改成 %f G++,G++的浮点型需要%f输出,%lf就是WA!!!
    让IE6支持Fixed
    更改input type="file" 的样式
    Repeater心得
    Windows服务删除
  • 原文地址:https://www.cnblogs.com/ashin1997/p/11355174.html
Copyright © 2011-2022 走看看