java 反射机制概述

来源:互联网 发布:冰川网络vr游戏上线没 编辑:程序博客网 时间:2024/05/22 06:57

 

本人一直对反射机制懵懵懂懂,在此查阅了相关资料,粗略的总结下:

java的反射机制有个很形象的比喻:反射机制相当一面镜子,java类通过这面镜子,可以动态获得具体的方法与属性。

Reflection可以用于运行时加载、探知、使用编译期间完全未知的classes。

 

public class ReflectionDemo {@SuppressWarnings("unchecked")public static void main(String[] args) throws ClassNotFoundException, IllegalArgumentException, IllegalAccessException, InvocationTargetException, InstantiationException {Class c = Class.forName("java.util.Date");System.out.println(c.getName()); for(Method method : c.getDeclaredMethods()){if(method.getName().equals("getMonth")){System.out.println("Method Name: "+method.toString()); //方法的信息System.out.println("Now Month::"+method.invoke(c.newInstance(), null)); //唤醒其Method}}for(Field field : c.getDeclaredFields()){System.out.println("Field Name: "+field.toString()); //属性的信息}}}


其实有一个问题就是,为什么要用反射机制呢?

个人认为运用反射机制,可以增加程序的可塑性与灵活性,对未知的类的可探测性。

 

备注:1.网上关于反射机制的解释、代码很多,故就此简短的总结,日后根据自己的理解,再加以完善本文。