1.反射?
(1)反射(Reflection)能够让运行于 JVM 中的程序检测和修改运行时的行为
。
(2)
在程序运行期间,Java运行时系统始终为所有的对象维护一个被称为运行时的类型标识。虚拟机利用运行时信息选择相应的方法执行。可以通过专门的Java类访问这些信息,保存这些信息的类被称为Class。
将Class类中的forName和newInstance配合使用,可以根据存储在字符串中的类名创建一个对象
。
2.如何得到类对象
<1>类名.class
<2>对象.getClass()
<3>Class.forName("全限定名");
<4>类加载的loadClass("全限定名");
<5>子类.class.getSuperClass();
<6>包装类.class
c.getName()------------>全限定名
c.getSimpleName() ---->类名
c.getPackage()---------->包名
c.getField("field属性名");
属性名:f.getName()
属性修饰符:f.getModifiers()
属性的数据类型:f.getType().getName()
给属性设值:f.set()
得到属性的值:f.get()
得到私有的属性:f.getDeclaredField("属性名");
得到所有的声明的属性: c.getDeclaredFields()
c.getMethod()
c.getDeclaredMethod();
7.根据类得到类的实现接口列表