1.导入junit和hamcrest的jar包
2.创建两个类user和people
package cn.study; import java.lang.reflect.Constructor; import java.lang.reflect.Field; import java.lang.reflect.Method; import org.junit.Test; /** * 测试反射,主要两个类: java.lang.reflect.Field,java.lang.reflect.Method; * * @author Administrator * @date 2017-08-22 * */ public class User extends People { private long id; private String name; public void setId(long id) { this.id = id; } public void setName(String name) { this.name = name; } public long getId() { return id; } public String getName() { return name; } /** * 测试User.class.getDeclaredFields() * * 获取到类自身的所有字段,包含public,protected,private方法 */ @Test public void testDeclaredFields() { Field[] dFields = User.class.getDeclaredFields(); for (Field field : dFields) { System.out.println(field); } } /** * 测试User.class.getFields() * * 获取到类的所有共有字段,包括自身所有的public字段,和从基类继承的,从接口实现的所有public字段 */ @Test public void testFields() { Field[] fields = User.class.getFields(); for (Field field : fields) { System.out.println(field); } } /** * 测试User.class.getDeclaredMethods() * * 获取到类的所有方法,包括自身所有的public方法,和从基类继承的,从接口实现的所有public方法 */ @Test public void testDeclaredMethods() { Method[] dMethods = User.class.getDeclaredMethods(); for (Method method : dMethods) { System.out.println(method); } } /** * 测试User.class.getMethods() * * 获取到类的所有方法,包括自身所有的public方法,和从基类继承的,从接口实现的所有public方法 */ @Test public void testMethods() { Method[] methods = User.class.getMethods(); for (Method method : methods) { System.out.println(method); } } /** * 测试User.class.getDeclaredFields() * * 获取到类自身的所有字段,包含public,protected,private方法 */ @Test public void testDeclaredConstructors() { Constructor<?>[] dConstructors = User.class.getDeclaredConstructors(); for (Constructor constructor : dConstructors) { System.out.println(constructor); } } }
package cn.study; public abstract class People { public int age; protected String[] favorite; public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String[] getFavorite() { return favorite; } public void setFavorite(String[] favorite) { this.favorite = favorite; } }
3.执行测试