JAVA语言之详看注解
从安 2019-06-05 来源 : 阅读 1045 评论 0

摘要:本篇文章主要讲述JAVA语言之详看注解,希望阅读本篇文章以后大家有所收获,帮助大家对相关内容的理解更加深入。

本篇文章主要讲述JAVA语言之详看注解,希望阅读本篇文章以后大家有所收获,帮助大家对相关内容的理解更加深入。

JAVA语言之详看注解

什么是注解?

首先需要明确一个概念,注解也是类,在内存中有着对应的class文件

注解是JDK1.5的特性

注解相当于一种标记,是类的组成部分,可以给类携带一些额外的信息.

标记(注解)可以加载包,字段,类,方法,方法参数以及局部变量上.

注解是给编译器或者jvm看的,编译器或jvm可以根据注解来完成对应的功能.

 

注解的作用?

注解的作用主要就是给程序带入参数

 

以下几个常用操作中都使用了注解

1. 生成帮助文档

@author 用来标识作者名称

@version 用来标识对象的版本号,适用范围:文件,类,方法

 

1. 编译检查

@override 用来告诉编译器该方法是重写父类中的方法,如果不存在或者有错误,则编译失败

 

1. 框架的配置(框架等于代码+配置)

 

还有一些较为常用的注解:

         @supressWarning 警告不显示,可以传入参数,参数为all时整个类都不显示警告

    @FunctionalInterface 函数式接口(只有一个自己特有抽象方法的接口)

          @Test junit测试

         @Deprecated 过时,不建议使用

 

什么是Junit?

    1).什么是"JUnit":它是一个第三方的软件包,它的作用:让我们可以很方便的进行“单元测试”。

    2).以后我们的程序会非常庞大,模块非常多,方法也非常多,此时测试某个方法就很不方便-需要启动程序,

       然后一步一步操作才能到达我们想测的方法。

    3).JUnit的功能:可以代替main()方法,在任意的类中可以测试运行某个方法。达到方便测试的目的。

    4).JUnit是基于“注解”的。

Junit的使用@Test

Junit是java语言的单元测试框架,简单理解可以取代java程序中的main方法,Junit属于第三方工具

在需要测试的方法声明上一行加上@Test,导入相应jar包(很多开发环境已经集成了Junit),就可以直接测试方法

 

JUnit单元测试_其它注解

   1).@Before:在@Test之前执行。每个@Test方法执行前都要执行一次@Before。@Before也可以有多个,执行顺序:
        1).按方法名的长度:降序;

        2).再按方法名:降序;

    2).@After:在@Test之后执行。每个@Test方法执行后,都要执行一次@After。@After也可以有多个,执行顺序:

        1).按方法名长度:升序;

        2).再按方法名:升序

    3).@BeforeClass : 用在静态方法上,在所有的@Before之前执行,而且只执行一次。

    4).@AfterClass : 用在静态方法上,在所有的@After之后执行,而且只执行一次。

 

注解_自定义注解的基本格式

     public @interface MyAnno{

        }

    但这个注解定义后,有两个问题:

        1).这个注解可以用在类的任何位置--使用"元注解"来解决;

        2).我们的注解没有起到任何作用--使用"自定义的注解解析器"来解决;

注解_元注解

         是自定义注解使用的

   1).什么是“元注解”:它也是一个“注解”,但这个注解必须用在“注解的定义”上。

        它可以约束我们定义的注解:

            1).使用的位置:@Target

                1).类       :ElementType.TYPE

                2).成员属性  :ElementType.FIELD

                3).成员方法  :ElementType.METHOD

                4).构造方法  :ElementType.CONSTRUCTOR

                5).局部变量上    :ElementType.LOCAL_VARIABLE

                6).形参:   :ElementType.PARAMETER

            2).生命周期:@Retention

'               1).源码:不会被编译到class中。 RetentionPolicy.SOURCE

                        例如:@Overrite

                2).class中:会存在于源码、class文件中,但运行时不会被加载到内存:RetentionPolicy.CLASS

                3).运行时(内存):会存在于源码、class文件、运行时内存:RetentionPolicy.RUNTIME

                        例如:JUnit的@Test....

    2).示例代码:

  

//约束注解只能在类上使用@Target({ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)public @interface MyAnno {
}

 

注解_解析注解

    1).模拟JUnit的注解解析器。

        前提:

        1).自定义注解@MyTest,必须是:用在方法上,生命周期:运行时;@MyTest

        2).使用自定义注解;Student

        3).自定义注解解析器,使用反射解析“使用自定义注解的类”,根据使用注解的情况,来决定怎样执行。MyAnnoTest

    2).见:demo10

注解_定义包含属性的注解

    1).格式:

        public @interface 注解名{
            数据类型 属性名() [default 默认值];
        }
        数据类型:各种基本类型、String、枚举类型。注意:没有包装类型。
        属性名:自定义标识符;
               注意:如果注解中只有一个属性,而且叫:value
                     使用注解时,可以省略这个“属性名”
 
 
@CheckName(value = 1)public void show(){
    System.out.println("show...");
}
@CheckName(value = 3)public void aaa(){
    System.out.println("aaa...");
}
@CheckName(2)//直接写值public void x(){
    System.out.println("x...");
}
@CheckName(4)public void bbb(){
    System.out.println("bbb...");
}

 

默认值:如果定义了“default 默认值”,在使用注解时,不是必须要为这个属性定义值,

                使用默认值。但如果没有定义“default 默认值”,在使用注解时,必须显示的为这个属性设置值。

 

本文由职坐标整理发布,学习更多的相关知识,请关注职坐标IT知识库!


本文由 @从安 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程