注解(Annotation)

注解

Java 注解(Annotation)又称 Java 标注,是 JDK5.0 引入的一种注释机制。

Java 语言中的类、方法、变量、参数和包等都可以被标注。和 Javadoc 不同,Java 标注可以通过反射获取标注内容。在编译器生成类文件时,标注可以被嵌入到字节码中。Java 虚拟机可以保留标注内容,在运行时可以获取到标注内容 。 当然它也支持自定义 Java 标注。

annotation的作用:

  • 不是程序本身,可以对程序作出解释,(这一点跟注解(comment)没有什么区别)

  • 可以被其他程序(比如:编译器等)读取

  • annotation并不直接影响代码语义,但是它能够工作的方式被看作类似程序的工具或者类库,它会反过来对正在运行的程序语义有所影响。

  • annotation可以从源文件、class文件或者以在运行时反射的多种方式被读取。

什么是注解?

JDK5 内建Annotation

注解的语法比较简单,除了**@**符号的使用之外,它基本与Java固有的语法一致。Java内置了三种注解,定义在java.lang中的注解:

@Override 重写的注解

@Deprecated 不推荐程序员使用,但是可以使用,或者存在更好的方式

@SuppressWarnings(“all”) 抑制全部(all)编译程序警告

JDK5 元注解Annotation

元注解的作用就是负责注解其他注解,java定义了4个标准的meat_anntation类型

它们被用来提供对其他anntation类型作说明

这些类都在java.lang.annnotation包下

package com.Jintwo.www;

import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Inherited;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
public class TextConnation {
	@MyAnnotation
	public void text() {
		
	}
}
//定义一个注解
//target 表示我们的注解可以用在那些地方
@Target(value=ElementType.METHOD)
//Retention 表示我们的注解在什么地方有效
//runtime >class>sources
@Retention(value=RetentionPolicy.RUNTIME)
//Documented 表示是否将我们的注解生成在Javadoc
@Documented
//Inherited  子类可以继承父类的注解
@Inherited
//interface 自定义注解,自动继承java.lang.aonnnation
@interface MyAnnotation{	
}
package com.Jintwo.www;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
@MyAnnotation(age=18,ages= {1,2,3})  //没有顺序
public class TextAnnotation {
	//注解可以显示赋值,如果没有默认值,我必须给注解赋值
	@MyAnnotation1("流")   
	public void text() {
		
	}
}
@Target({ElementType.METHOD,ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@interface MyAnnotation{
	//注解的参数:参数类型+参数名();
	String name() default"";
	int age();
	int []ages();
}
@Target({ElementType.METHOD,ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@interface MyAnnotation1{
	String value();      //如果只有value,就不用value=?
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值