java 反射(Reflect) - Resolution for Issues.
1,什么是class类
面对对象的世界里,万事万物皆对象。
在java语言中,静态的成员和普通的数据类型不是对象
类也是对象,类是java.lang.class的对象
package com.mk; public class Test{ public static void main(String [] args){ Foo foo = new Foo();//foo 表示foo的实例对象 //任何一个类都是class的实例对象,有3中表达方式 //1,任何一个类都有一个隐含的成员变量class Class c1 = Foo.class; //2,通过getClass方法获得 Class c2 = foo.getClass(); //不管是c1还是c2都代表Foo类的类类型,一个类只能是Class的实例对象 System.out.println(c1==c2);//true //3,第三种表达方式 Class c3 = null; try { c3 = Class.forName("com.mk.Foo");//类的全称 } catch (ClassNotFoundException e) { e.printStackTrace(); } System.out.println(c2==c3);//true //可以通过类的类类型创建该类的对象实例 try { Foo f1 = (Foo) c1.newInstance();//需要无参数的构造方法 f1.print(); } catch (InstantiationException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } }} class Foo{ void print(){ System.out.println("print parent"); }}