• Java反射


    一、反射机制有关的类大多在java.lang.reflect包中。

    常用类:

        java.lang.Class<T>  类类型

        java.lang.reflect.Method  方法类型

        java.lang.reflect.Field  字段类型

    二、常用方法:

    获得类的类类型:

    Class cla1=String.class;
    Class cla2=UserEntity.class;

    try {
    	Class cla=Class.forName("UserEntity");
    } catch (ClassNotFoundException e1) {
    	e1.printStackTrace();
    }

    Class	clazz 	=	 obj.getClass ();

    根据类名创建类的对象:

    String	 className 	=	 "com.xyz.entity.Car ";	
    Object	 obj 	=	 Class.forName (className ).newInstance();
    获取方法:
    使用Class类中的方法:
    public Method getMethod(String name,
                            Class<?>... parameterTypes);//获取类的指定方法。第一个参数:方法名;第二个参数:方法中参数的类型
    
    public Method[] getMethods();//获取类的全部方法
    

    示例:

    Method	method	=	 clazz.getMethod("start" );

    执行方法:

    method.invoke(obj); 

    获得类中的字段:

    public Field getDeclaredField(String name);
    public Field[] getDeclaredFields();
    //Field类中
    String fieldName=field.getName();//获得字段的属性名
    Class fieldType=field.getType();//获得字段的属性值
    String typeStr=fieldType.toString();//结果:class java.lang.String

    还有(下面这两个还没用过):

    public Field getField(String name);
    public Field[] getFields();

    获得类的属性值:

    Field类中的方法:

    public Object get(Object obj);
    

    使用示例:

    TestEntity testEntity = new TestEntity();
    Field[] fds = Class.forName("com.xyz.entity.TestEntity").getDeclaredFields();
    for(int i=0;i<fds.length;i++)
    {
    	System.out.println(fds[i].get(testEntity));
    }

    三、在项目中的应用

        如:java反射执行实体类中的set/get方法。例子:java反射执行pojo中的set/get方法  

    待续……

  • 相关阅读:
    C# WebApi 获取客户端ip地址
    C# 构造函数快捷键
    2 .SHELL 5~10节
    Spring项目集成apidoc生成api接口文档
    根据域名查找对应的ip及端口
    高质量SQL的30条建议
    1 .shell编程1~5
    CentOS7安装mysql8
    编译安Apache2.4.43报错checking for APR... no configure: error: APR not found. Please read the documentation.
    rm -rf * 的正确用法
  • 原文地址:https://www.cnblogs.com/mySummer/p/4104114.html
Copyright © 2020-2023  润新知