反射
反射的前提:我们要获取/使用别人代码的能力
代码必须要获取字节码对象(Class.forname(“全路径名”)/类名.class/对象.getClass()),才能进一步操作
单元测试方法
@Test+public+void+没有参数
多个单元测试方法可以独立运行,互不影响
反射及单元测试例题:
package cn.tedu.reflection;
import org.junit.Test;
import sun.management.counter.Units;
/**本类用于反射技术测试类*/
public class TestReflect {
//1.创建程序的入口函数main()--不用
/**单元测试方法:是java运行测试的最小单位
* 使用灵活,很推荐
* 语法要求:@Test + void+没有参数+public
* 注意:使用时需要导包:add JUnit4 to classpath
* import org.junit.Test;
* */
//2.定义单元测试方法获取字节码对象
@Test
public void getClazz() throws ClassNotFoundException {
//此处的参数是目标类的全路径名:包名+类名
Class<?> student1 = Class.forName("cn.tedu.reflection.Student");
Class<?> student2 =Student.class;
Class<?> student3 =new Student().getClass();
System.out.println(student1);//直接打印获取到的字节码对象
System.out.println(student2.getName());//获取类的全路径名
System.out.println(student3.getSimpleName());//只获取类名
System.out.println(student3.getPackage());//获取包对象
System.out.println(student3.getPackage().getName());//获取包名
}
}