反射基础

  • 初识JavaUnit
package bull01.Unit;

import org.junit.After;
import org.junit.Before;
import org.junit.Test;

public class UnitDemo1 {
    /*
     * Junit:
     * 1.在运行的方法上添加注解@Test
     * 2.右键以Junit运行
     */
    @Test
    public void method1() {
        System.out.println("this is method1");
    }

    @Test
    public void method2() {
        System.out.println("this is method2");
    }

    @Test
    public void method3() {
        System.out.println("this is method3");
    }

    //测试方法前执行,类似打开资源
    @Before
    public void myBefore() {
        System.out.println("this is before");
    }

    //测试方法之后执行,类似释放资源
    @After
    public void myAfter() {
        System.out.println("this is after");
    }
}
  • JavaBean规范以及Java提供三种方式获得Class对象
package bull02.Reflect;
/*
 * JavaBean规范
 * 1.提供私有字段,例如:private String id;
 * 2.必须提供getter或setter方法
 * 3.提供无参构造方法
 * 4.必须实现序列化接口:
 *          java.io.Serializable
 */
public class Bean implements java.io.Serializable {
    private String name;
    private int age;

    public Bean() {

    }

    public Bean(String name,int age) {
        this.name = name;
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }


}
package bull02.Reflect;

import org.junit.Test;

/*
 * Java提供三种方式获得Class对象
 * 不同的应用场景需要不同的方式获得Class对象  
 * 
 * 方式:
 * 1.通过字符串(全限定类名)获得
 *      格式:Class clazz   = Class.forName("字符串");
 *      全限定类名:包名+类名
 *   应用场景:确定类型等
 *          
 * 2.通过Java类型获得
 *      格式:Class clazz = 类型.class;
 *   应用场景:在方法内部通过参数获得类型等
 *   
 * 3.通过实例对象获得
 *      格式:Class clazz = obj.getClass();
 *   应用场景:通过配置获得字符串等
 */
public class ClassDemo {

    @Test
    public void demo1() throws ClassNotFoundException {
        Class clazz = Class.forName("bull02.Reflect.Bean");
        System.out.println(clazz);
    }

    @Test
    public void demo2() {
        Class clazz = Bean.class;
        System.out.println(clazz);
    }

    @Test
    public void demo3() {
        Bean be = new Bean();
        Class clazz = be.getClass();
        System.out.println(clazz);
    }
}

猜你喜欢

转载自blog.csdn.net/sinat_40662281/article/details/79783797