编程语言
首页 > 编程语言> > javaEE(单元测试、反射、动态代理、xml)

javaEE(单元测试、反射、动态代理、xml)

作者:互联网

单元测试

JUnit单元测试框架

@Test注解

public class A {
    @Test
    public void a(){
        .....
    }
}

注解

初始化资源

释放资源

反射

是指对于任何一个Clss类,在运行是都可以直接得到这个类的全部成分

Class c = A.class;

获得类对象

Class类中的静态方法:

main(){
    Class c =Class.forName("com.hjz.entity.Student");
    Class c =Student.class;
    Student s =new Student();
    Class c = s.getClass();
}

获得构造器对象:

1.获得Class类对象

2.获得构造器对象

main(){
    Class c =Student.class;
    Constructor[] cs = c.getConstructors();
    Constructor[] cs = c.getDeclredConstructors(String.class,int.class);//有一个构造方法是啥用啥
}

创建对象:

main(){
    Class c =Student.class;
    Constructor cs = c.getDeclredConstructors();//有一个构造方法是啥用啥
    //反射会破坏封装性
    cs.setAccesible(true);//是私有的
    Student s = (Student)cs.new newInstance();
}

获得成员变量对象:

1.获得Class类对象

2.获得成员变量对象

方法:

main(){
    Field agef =c.getDeclredFiled("age");
 	agef.setAccessible(true);
    Student s =new Student();
    agef.set(s.18);
    int age = (int) agef.get(s);
}

获得方法对象

....和之前的一样

反射的作用

ArrayList<Integer> list =new ArrayList<>();

实际跑起来都是Arraylist的类型了,不用管Integer了

1.定义一个方法可以接受任意的对象

2.每次收到一个对象后,解析这个对象的全部成员变量

3.这个对象是任意的

4.遍历这个成员变量,提取成员变量的具体的值

5.把名称和值放到成员变量对应的文件里面

注解

JDK5 引入的标注

自定义注解

public @interface 注解名称{
    public属性名称 属性名()default 默认值;
}

例子:

public @interface MyBook{
    String name();
    String[] authors();
    double price();
}
public class a{
    @MyBook(name="java",autors={"黑马","我的"},price=200)
    public void ss(){
        
    }
}

只有一个value属性可以写可以不写

元注解

注解上的注解

@Target({ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
public @interface MyBook{
    String name();
    String[] authors();
    double price();
}

注解解析

动态代理(重点)

代理为对象的行为实现一些辅助操作:

有时间看吧

xml

xml解析---xpath解析技术

可扩展标记语言

数据表示格式

<?xml version="1.0" encoding="utf-8">
<--注释有且仅有一个-->

文档约束

解析数据技术:Dom4J框架底层技术

数据检索技术XPath

完结了我草终于2022.05.07

标签:xml,对象,javaEE,单元测试,class,public,Student,注解,Class
来源: https://www.cnblogs.com/HJZ114152/p/16406717.html