Java注解学习笔记

注解

1. 什么是注解?

  • Annotation是从JDK5.0开始引入

  • 作用:可以对程序做出解释,可以被其他程序(如编译器读取)。

  • 注解的格式:

    @+注释名

    如:镇压警告注解 @SuppressWarnings(value=“unchecked”)

  • 注解的使用位置

    可以在packet、class、method、field等上面,通过反射机制实现访问。

2. 内置注解

  • @Override: 只能用于修饰方法,表示该方法重写了父类中的方法。

  • @Deprecated: 可以用于修饰类、方法和属性,表示不鼓励使用,通常存在更好的选择或者存在潜在的危险。

  • @SuppressWarnings: 用来抑制编译时的警告信息。

内置注解均在java.lang包下定义。

3. 元注解

元注解是负责注解其他的注解。java定义了四种元注解(Meta-annotation):

  • @Target:用于描述注解的使用范围(可以在哪些地方使用)

  • @Retention:用于描述注解的生命周期

    SOURCE<CLASS<RUNTIME

    自定义注解一般使用RUNTIME

  • @Documented:说明该注解将会出现在javadoc中

  • @Inherited:说明子类可以继承父类中的该注解

4.自定义注解

注解的格式为:@interface + 注解名 + {}

下面通过内部类的方式自定义注解:

package com.bistu.annotation;

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

public class Test2 {
    @MyAnnotation2(name="qlf",age=18)
    public void test(){

    }
}

@Target(value= {ElementType.METHOD,ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@interface MyAnnotation2{
    //参数的格式:参数类型 + 参数名()
    //加上默认值之后,在使用该注解时,可以不用赋值
    String name() default "秦鲁法";
    //如果不加默认值,在使用注解时,要进行显示赋值
    int age();
    String[] schools() default {"清华大学","北京大学"};
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值