Java 反射机制

  • 什么是反射(what’s Java Reflection)
java反射是Java被视为动态(或准动态)语言的一个关键性质。这个机制允许程序在运行时透过Reflection APIs取得任何一个已知名称的class的内部信息,包括其modifiers(诸如public,static等等)、superclass(例如Object)、实现之interfaces(例如Cloneable),也包括fieldsmethods的所有信息,并可于运行时改变fields内容或唤起methods
  • 反射能做什么(what reflection can do)
在运行时判断任意一个对象所属的类
在运行时构造任意一个类的对象
在运行时判断任意一个类所具有的成员变量和方法
在运行时调用任意一个对象的方法

  • 反射的API(ReflectionAPI)
java.lang.reflect.Method;
java.lang.reflect.Constructor;
java.lang.reflect.Field;
java.lang.reflect.Modifier;
java.lang.reflect.Array;

//获取任意一个类
Class clz = String.class;
Class clz = Class.forName(“java.lang.String”);

实例化对象、判断其类型

public class ReflectionExample {
               public static void main(String[] args) {
                  Class clz = ReflectionExample.class;
                  try {
                      if (clz.newInstance() instanceof String) {
                         System.out.println("instance is String");
                       } else {
                      System.out.println("instance is not String");
                        }
                       } catch (InstantiationException e) {
                     e.printStackTrace();
                   } catch (IllegalAccessException e) {
                      e.printStackTrace();
                  } }}
java.lang.reflect.Constructor
Class.getConstructors();
Class.getConstructor(Class[]);


  • The Class class
  •   Class methods    
  • Constructor class
  • Method class
  •   invoking a method, throwing exceptions
  • Array class
  • Member interface
  • Field class
  •   accessible object
  • Java Reflection

------------------待续

posted @ 2014-04-16 13:33  一个学渣  阅读(171)  评论(0编辑  收藏  举报

 

CSDNGitHub 联系邮箱:aikongmeng@gmail.com


Copyright 2008-2019 Government All Rights Reserved