Java反射机制应用实践

来自:ZiWenXiejava

连接:https://www.ziwenxie.site/2017/03/22/java-reflection/设计模式

Java反射机制应用实践

前言ui

    Java反射机制是一个很是强大的功能,在不少大型项目好比Spring, Mybatis中均可以看见反射的身影。经过反射机制咱们能够在运行期间获取对象的类型信息,利用这一特性咱们能够实现工厂模式和代理模式等设计模式,同时也能够解决Java泛型擦除等使人苦恼的问题。本文咱们就从实际应用的角度出发,来应用一下Java的反射机制。spa

反射基础

p.s: 本文须要读者对反射机制的API有必定程度的了解,若是以前没有接触过的话,建议先看一下官方文档的Quick Start。设计

在应用反射机制以前,首先咱们先来看一下如何获取一个对象对应的反射类Class,在Java中咱们有三种方法能够获取一个对象的反射类。代理

经过getClass方法

在Java中,每个Object都有一个getClass()方法,经过getClass方法咱们能够获取到这个对象对应的反射类:code

/**
 * 经过getClass获取反射类
 * Created by zhangyhk on 2017/5/24.
 */
public class getClassTest {
    public static void main(String[] args) {
        Student s =new  Student();
        Class<?> c = s.getClass();

    }
}


经过forName方法对象

咱们也能够调用Class类的静态方法forName()文档

/**
 * 经过forName方法获取反射类
 * Created by zhangyhk on 2017/5/24.
 */
public class forNameTest {

    public static void main(String[] args) {
        try {
            Class<?> c = Class.forName("www.westinfo.reflect.Student");
            System.out.println(c);
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
    }
}


使用.classget

或者咱们也能够直接使用.class

 

Class<?> c = String.class;

获取类型信息

相关文章
相关标签/搜索