• 反射随笔


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

    好处:
        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

  • 相关阅读:
    MySQL创建用户及用户授权
    kubectl 更新容器镜像
    harbor安装报权限错误问题解决
    docker拉取harbor仓库镜像报x509: certificate signed by unknown authority的解决方案
    pkexec提权(限制条件:用户必须在sudo组里且知道用户密码)
    sudo useradd提权
    Linux下绕过空格的方式总结
    Solved: cannot kill Docker container permission denied
    nginx和Docker的打怪升级
    三种免费Terminal工具推荐
  • 原文地址:https://www.cnblogs.com/ashin1997/p/11355174.html
Copyright © 2020-2023  润新知