Java---JUnita、注解与类加载器详解以及实例(2)

简介: Java---JUnita、注解与类加载器详解以及实例

★ JUnit中的其它注解

@BeforeClass、@AfterClass、@Before、@After

package cn.hncu.test;
import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
import cn.hncu.user.dao.dao.UserDao;
import cn.hncu.user.dao.factory.UserDaoFactory;
import cn.hncu.user.dao.impl.UserDaoImpl;
/**
 * @author 陈浩翔
 * @version 1.0  2016-5-4
 */
public class TestUserDaoImpl2 {
    UserDao dao = UserDaoFactory.getUserDao();
    //注意要加static
    @BeforeClass
    public static void initFirst(){
        System.out.println("finishEnd...");
    }
    //在每次运行@Test方法之前,都会先运行这个@Before的方法
    @Before
    public void init(){
        System.out.println("init...");
    }
    @Test
    public void testFun1(){
        try {
            dao.fun1();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
        /*运行结果
    finishEnd...
    init...
    fun1....
    finish...
    finishEnd...
    */
    @Test
    public void testFun2() {
        dao.fun2();
    }
    /*运行结果
    finishEnd...
    init...
    fun2....
    finish...
    finishEnd...
    */
    @Test
    public void testFun3() {
        dao.fun3();
    }
    /*运行结果
    finishEnd...
    init...
    fun3....
    finish...
    finishEnd...
    */
    //在每次运行@Test方法之后,都会最后运行这个@After的方法
    @After
    public void finish(){
        System.out.println("finish...");
    }
    //注意要加static
    @AfterClass
    public static void finishEnd(){
        System.out.println("finishEnd...");
    }
}



注解 ( Annotation )


★ 元数据


   所谓元数据就是数据的数据。也就是说,元数据是描述数据的。就象数据表中的字段一样,每个字段描述了这个字段下的数据的含义。

  元数据可以用于创建文档,跟踪代码中的依赖性,甚至执行基本编译时检查。许多元数据工具,如XDoclet,将这些功能添加到核心Java语言中,暂时成为Java编程功能的一部分。

   一般来说,元数据的好处分为三类:文档编制、编译器检查和代码分析。代码级文档最常被引用。元数据提供了一种有用的方法来指明方法是否取决于其他方法,它们是否完整,特定类是否必须引用其他类,等等。

1

2

3

★ 什么是注解

Java中的注解就是Java源代码的元数据,也就是说注解是用来描述Java源代码的。 基本语法就是:@后面跟注解的名称。


像前面演示的那几个都是注解。


★ Java中预定义注解


①Override:标识某一个方法是否正确覆盖了它的父类的方法。

(如果用了这个注解,但是父类中没有这个方法,就会报错)

image.png

image.png

②Deprecated:表示已经不建议使用这个类成员了。 它是一个标记注解。

(用了这个注解的,表示在下一个升级版本中,可能不会有这个方法了,但是会有类似功能的方法代替,会在注释中提出)

image.png


③SuppressWarnings:用来抑制警告信息。

(例如:压泛型的警告)

(这个是可以传参进去的,可以实现不同的功能)

image.png


自定义注解1


自定义注解的语法很简单,跟定义接口类似,只是在名称前面加上@符号。

★ 最简单的自定义注解


public @interface MyAnno {
}


★ 使用这个注解

和使用其他注解是一样的


@MyAnno
public class UserModel{
}


★ 为注解添加成员


//定义
public @interface MyAnno {
  public String schoolName();
}
//使用
@MyAnno(schoolName="湖南城市学院")
public class UserModel{
}


★ 设置默认值


//定义
public @interface MyAnno {
  public String schoolName() default "湖南城市学院";
}
//使用1
@MyAnno
public class UserModel{
}
//使用2
@MyAnno(schoolName="城院Java高手训练营")
public class UserModel{
}


对注解的注解


package cn.hncu.anno;
import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.METHOD,ElementType.TYPE})
public @interface MyAnno {
}

☆指定目标 Target

在了解如何使用Target 之前,需要认识另一个类,该类被称为ElementType (通过API详细学习) ,它实际上是一个枚举。这个枚举定义了注释类型可应用的不同程序元素。

//如果都不写,就是随便在哪里都可以用


@Target({ ElementType.TYPE, ElementType.METHOD})


//这个注解可以在哪里用,TYPE-可以在类上面用,METHOD-可以在方法上用


☆设置保持性 Retention

RetentionPolicy (通过API详细学习)枚举类中定义了3种注解保持性,分别决定了Java 编译器以何种方式处理注解。


@Retention(RetentionPolicy.RUNTIME)


//运行时VM虚拟机也能识别这个注解,这个注解一直存在


@Retention(RetentionPolicy.SOURCE)


//class文件中有这个注解,但是VM虚拟机运行时,忽略这个注解了。

(这是默认的)


☆添加公共文档 Documented

在默认的情况下在使用javadoc自动生成文档时,注解将被忽略掉。如果想在文档中也包含注解,必须使用Documented为文档注解。


☆设置继承 Inherited

在默认的情况下,父类的注解并不会被子类继承。如果要继承,就必须加上Inherited注解。



目录
相关文章
|
4天前
|
Java 编译器 程序员
java注解浅述
java注解浅述
12 1
|
4天前
|
Java
java中递归实例
java中递归实例
18 0
|
3天前
|
ARouter Java
Java注解之编译时注解
Java注解之编译时注解
16 3
|
4天前
|
Java
【Java开发指南 | 第九篇】访问实例变量和方法、继承、接口
【Java开发指南 | 第九篇】访问实例变量和方法、继承、接口
14 4
|
4天前
|
Java 编译器 开发者
Java一分钟之-Java注解的理解与应用
【5月更文挑战第12天】本文介绍了Java注解的基础知识和常见应用,包括定义、应用和解析注解。注解在编译检查、框架集成和代码生成等方面发挥重要作用。文章讨论了两个易错点:混淆保留策略和注解参数类型限制,并提供了避免策略。提醒开发者避免过度使用注解,以保持代码清晰。理解并恰当使用注解能提升代码质量。
13 3
|
4天前
|
Java API Python
java注解
java注解
|
4天前
|
JSON 前端开发 Java
【JAVA进阶篇教学】第七篇:Spring中常用注解
【JAVA进阶篇教学】第七篇:Spring中常用注解
|
4天前
|
Java
代码实例演示Java字符串与输入流互转
代码实例演示Java字符串与输入流互转
|
4天前
|
IDE Java 数据库连接
Lombok注解大全
这些是Lombok中的一些常见注解,它们可以显著减少Java代码中的冗余代码,提高代码的可读性和可维护性。不过,在使用Lombok之前,请确保你的开发环境已经配置好支持Lombok,通常需要安装相应的插件或进行设置以使IDE(如Eclipse、IntelliJ IDEA)能够正确解析Lombok注解。
27 2
|
4天前
|
Java 编译器 Android开发
Java注解你知多少?
Java注解你知多少?
13 1