先定义一个SUser类,方便以后的测试。代码如下:
package com.wjl.reflect; public class SUser { private String userName; private String passWord; public SUser(){//无参构造方法 } public SUser(String userName) { this.userName = userName; } public SUser(String userName, String passWord) { this.userName = userName; this.passWord = passWord; } public String getUserName() { return userName; } public void setUserName(String userName) { this.userName = userName; } public String getPassWord() { return passWord; } public void setPassWord(String passWord) { this.passWord = passWord; } @Override public String toString() { return "用户名:"+userName+",密码:"+passWord; } }
说到反射,首先要说的必然是class类,具体操作说明帮助文档说的很清楚我这里就不赘述了。就说说实例化class的三种方式吧。
package com.wjl.reflect; //反射:实例化Class类的三种方法 public class GetClassInstanceDemo01 { public static void main(String[] args) { //实例化Class类 Class<?> c1 = null; Class<?> c2 = null; Class<?> c3 = null; //1、使用forName(最常见) try{ c1 = Class.forName("com.wjl.reflect.SUser");//包名+类名 }catch(ClassNotFoundException e){ e.printStackTrace(); } //2、通过object类中的方法实例化 c2 = new SUser().getClass(); //3、通过类.class c3 = SUser.class; System.out.println("类名称1:"+c1.getName()); System.out.println("类名称2:"+c2.getName()); System.out.println("类名称3:"+c3.getName()); } }