断言方法
Demo
@Test public void test01() { System.out.println("Hello Junit"); System.out.println("运行单元测试成功"); int n = 10 / 2; Assert.assertEquals("你这个运行可能出问题", 5, n); }
类名.class
对象.getClass()
Class.forName("类全名")
注意事项
public void test01() throws ClassNotFoundException{ // 类名.class Class clazz1 = Employee.class; System.out.println(clazz1); // 对象.getClass() Employee emp=new Employee(); Class clazz2=emp.getClass(); System.out.println(clazz2); // Class.forName("类全名"); Class> clazz3=Class.forName("com.itheima.bean.Employee"); System.out.println(clazz3); }
Method类的作用
如何获取Method
Method类中的方法
如何得到Method对象
代码示例
// 1.得到Class对象 Class cls = Employee.class; Employee emp = cls.getConstructor().newInstance(); // 2.得到一个public的方法 Method m1 = cls.getMethod("setName", String.class); // 调用方法 Object ret = m1.invoke(emp, "柳岩");
Field的作用
步骤
1.得到Class对象
2.得到Field
// 1.得到Class对象 Class cls = Employee.class; Employee emp = cls.newInstance(); // 2.得到Field Field f1 = cls.getDeclaredField("name"); f1.setAccessible(true); // 3.给成员变量赋值 f1.set(emp, "凤姐"); // 4.获取成员变量的值 Object value = f1.get(emp);
获取Field
Field类中的方法
// 1.通过Properties加载配置文件 Properties pp = new Properties(); pp.load(new FileReader("study_day13\\src\\config.properties")); // {methodname=teach, classname=com.itheima.demo09Reflect.Teacher} System.out.println("pp = " + pp); // 2.得到类名和方法名 String className = pp.getProperty("classname"); String methodName = pp.getProperty("methodname"); // 3.通过类名反射得到Class对象 Class> cls = Class.forName(className); // 4.通过Class对象创建一个对象 Object emp = cls.newInstance(); // 5.通过Class对象得到方法 Method method = cls.getMethod(methodName); // 6.调用方法 method.invoke(emp);
自定义注解格式
@interface 注解名 { 数据类型 属性名(); }
使用自定义注解格式