反射:加载类的方法有三种,
1.用Class.forName("类名")方法来调用;
2.类名.class得到
3.用对象.getClass()得到
package com.ma.reflection;
import org.junit.Test;
import com.ma.bean.UserBean;
public class Demo1 {
/**
* 反射:加载类的方法
*/
@Test
public void test1(){
//1.用Class.forName("类名")方法来调用;
try {
Class<?> c = Class.forName("com.ma.bean.UserBean");
System.out.println(c);
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
//2.类名.class得到
Class<?> cla1 = UserBean.class;
System.out.println(cla1);
//3.用对象.getClass()得到
Class<?> cla2 = new UserBean().getClass();
System.out.println(cla2);
}
}
UserBean实体类
package com.ma.bean;
/**
* UserBean实体类
* @author ma
*
*/
public class UserBean {
private String id;
private String name = "张三";
private String password;
public UserBean() {
super();
System.out.println("我是无参构造方法");
}
public UserBean(String id, String name, String password) {
super();
this.id = id;
this.name = name;
this.password = password;
System.out.println("我是有参构造方法");
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
@Override
public String toString() {
return "UserBean [id=" + id + ", name=" + name + ", password="
+ password + "]";
}
private UserBean(String name){
this.name = name;
System.out.println(name);
}
}