java注解

Annotation的作用:

不是程序本身,可以对程序作出解释

可以被其他的程序比如编译器等读取

Annotation的使用范围:

在package/class/method/field等都可以使用,相当于给他们添加了额外的辅助信息

内置注解

@override定义在java.lang.override中,这个注解只用于修饰方法,表示一个方法打算重写父类中的该方法

@deprecated定义在java.lang.deprecated中,此注释可以用于修饰方法,属性,类,不建议使用这个

@suppresswarings,定义在java.lang.suppresswarnings中,用来抑制编译时的警告信息

仔细看两个a的颜色不一样,这个注解是为了忽略警告,比如说我定义了一个方法,但是没有用这个方法,报的警告(不是报错)

 

 元注解

元注解的作用是程序员定义自己的注解,java定义了四个标准的meta-annotation类型,他们被用来提供对其他的annotation的类型做说明

这些类型和题目所支持的类在java.lang.annotaion包中可以找到

1.@target 用于描述注解的使用范围,即注解可以被用在什么地方上  比如说 方法

@Target(ElementType.METHOD)

2.@retention,用于描述注解的生命周期

    (source>class>reuntime)

定义了source,则在后面两个中也有效

定义了class,则在runtime中有效

3.@document 说明该注解将被包含在javadoc中

avadoc是Sun公司提供的一个技术,它从程序源代码中抽取类、方法、成员等注释形成一个和源代码配套的API帮助文档。也就是说,只要在编写程序时以一套特定的标签作注释,在程序编写完成后,通过Javadoc就可以同时形成程序的开发文档了。

javadoc命令是用来生成自己API文档的,使用方式:使用命令行在目标文件所在目录输入javadoc +文件名.java。

 

4.@inherited说明子类可以继承父类的该注解

 这四个元注解

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

//测试元注解

public class test02 {
    @MyAnnotation
    public void aa() {
    }
}
//MyAnnotation是test02的内部类
@Retention(value= RetentionPolicy.RUNTIME )//表示运行时有效
@Target(value = ElementType.METHOD)//表示只能用在方法中
@interface MyAnnotation {

}

自定义注解的赋值和默认值 

package com.annotation;

import java.lang.annotation.ElementType;
import java.lang.annotation.Target;

public class test03 {
    @myannotation2(id=10,name="mike")
    public void aaa() {
    }
    @myannotation3("uuuu")
    public void bbb()
    {

    }
}

@Target(ElementType.METHOD)
@interface myannotation2 {   //数据类型 方法名  () 默认值;
    String name() default "";

    int id() default -1;

    int age() default 0;

    String[] school() default {"西北大学", "北京大学"};
}
@Target(ElementType.METHOD)
@interface myannotation3 {//当我的注解只有一个属性的时候,最好把这个属性起名叫value,这样赋值的之后就不用写名字了,直接赋值
    String value() ;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值