zoukankan      html  css  js  c++  java
  • Class类与Java反射《java从入门到精通》第十六章

    目的:理解属性拷贝工具类(根据类的class对象获取类的对象:利用反射获取类的对象)

    /**
         * @description: 对象属性拷贝 转化
         * @param source
         * @param destinationClass
         * @return T
         */
        public static <T> T copyProperties(Object source, Class<T> destinationClass) {
            if (null == source) {
                return null;
            }
            T t = null;
            try {
                /**
                 * 主要就是为了理解这一句:
                 * getDeclaredConstructor获取指定的构造方法(这里获取的是无参构造)对象
                 * newInstance获取类的对象
                 */
                t = destinationClass.getDeclaredConstructor().newInstance();
            } catch (Exception e) {
                e.printStackTrace();
            }
            if (t != null) {
                BeanUtils.copyProperties(source, t);
            }
            return t;
        }

    概念

    利用反射获取类的构造方法,从而获取类的对象

    类:Constructor

    注释:构造方法类

    继承关系

    public final class Constructor<T> extends Executable 
    public abstract class Executable extends AccessibleObject implements Member, GenericDeclaration
    //其中AccessibleObject 类的方法,获取操作权限,可以获取类的私有的构造方法(通过new获取的对象,无法访问私有属性)
    public void setAccessible(boolean flag) throws SecurityException

    位置 java.lang.reflect.Constructor;

    常用方法摘要

    public int getModifiers()  获取构造方法的修饰符(返回值是int,Modifier类toString(int mod)方法可以获取到修饰符具体看源码
    
    public String getName()   获取构造方法的名称
    
    public Class<?>[] getParameterTypes() 获取构造方法的参数类型
    
    public T newInstance(Object ... initargs)  获取类的对象

    类:Class

    public final class Class<T>

    常用方法摘要

    获取类的构造方法对象(Constructor对象)4

    public Constructor<?>[] getConstructors() 获取所有公有的构造方法
    
    public Constructor<T> getConstructor(Class<?>... parameterTypes) 获取指定的公有的构造方法(参数为构造方法的参数的类型)
    
    public Constructor<?>[] getDeclaredConstructors() 获取所有的构造方法
    
    public Constructor<T> getDeclaredConstructor(Class<?>... parameterTypes)获取指定的构造方法 

    利用反射获取类的成员变量,方法(贴图,遇到代码再来看)

  • 相关阅读:
    回文串---最长回文
    回文串---Hotaru's problem
    回文串--- Girls' research
    回文串---吉哥系列故事——完美队形II
    回文串---Palindrome
    treap树---营业额统计
    treap树---Double Queue
    《程序员代码面试指南》第二章 链表问题 复制含有随机指针节点的链表
    《程序员代码面试指南》第二章 链表问题 将单链表按某值划分为左边小,中间相等,右边大的链表
    《程序员代码面试指南》第二章 链表问题 反转部分单向链表
  • 原文地址:https://www.cnblogs.com/javalbb/p/12745982.html
Copyright © 2011-2022 走看看