java企业级核心技术反射解析

反射的概念:

反射的概念是由Smith在1982年首次提出的,主要是指程序可以访问、检测和修改它本身状态或行为的一种能力。这一概念的提出很快引发了计算机科学领域关于应用反射性的研究。它首先被程序语言的设计领域所采用,并在Lisp和面向对象方面取得了成绩。在计算机科学领域,反射是指一类应用,它们能够自描述和自控制。也就是说,这类应用通过采用某种机制来实现对自己行为的描述(self-representation)和监测(examination),并能根据自身行为的状态和结果,调整或修改应用所描述行为的状态和相关的语义。

public class Demo1 {
    public static void main(String[] args) {
        String s = new String("hello");
        Class clz = s.getClass();
        System.out.println("类名:"+ clz.getName());
        System.out.println("包名:"+clz.getPackage());
        System.out.println("是否为接口:"+clz.isInterface());
        System.out.println("是否为基本类型:"+clz.isPrimitive());
        System.out.println("是否为数组:"+clz.isArray());
        System.out.println("String类的父类:"+clz.getSuperclass());

        Class clz1 = String.class;
        System.out.println("类名:"+clz1.getName());
        System.out.println("包名:"+clz1.getPackage());
        System.out.println("是否为接口:"+clz1.isInterface());
        System.out.println("是否为基本类型:"+clz1.isPrimitive());
        System.out.println("是否为数组:"+clz1.isArray());
        System.out.println("String类的父类:"+clz1.getSuperclass());

        System.out.println(clz == clz1);
        int a = 100;
        System.out.println(int.class);
    }
}
原文地址:https://www.cnblogs.com/paoge/p/13537343.html