IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> java注解基本语法 -> 正文阅读

[Java知识库]java注解基本语法

注解的概念

? ? ? ? 官方:java注解用于为java代码提供元数据,作为元数据,注解不直接影响你的代码执行

????????????????但也有一些类型的注解实际上可以用于着一目的,java注解是从java5开始添加到java的

? ? ? ? 我理解:我感觉注解就像是一个标记,表名了被标记的东西是一个意思

? ? ? ? 注解可以标记任何地方,但是我们还是可以使用一些手段进行限制

? ? ? ? 注解分为两大类:普通注解、元注解

? ? ? ? 普通注解就是用来注解:方法、属性、类的

? ? ? ? 元注解则是用来注解:普通注解

普通注解

????????注解声明

????????????????public @interface name{

???????????????? }

????????注解使用:(就是@注解类名),可以写到(方法、属性、类)

????????@name

????????public class a{ }

????????注意:这个注解并没有多大的作用,顶多算是一个标记

????????????????????????如果要有作用的话,就需要使用元注解

????????常用注解

????????????????@Override

????????????????????????表示一个方法的声明是否重写了父类的方法,但是只能出现在方法之上

????????????????@Deprecated

????????????????????????这个注解是用来表示过时的元素

????????????????@SuppressWrnings

????????????????????????表示屏蔽jvm提示的异常信息

????????注解属性

????????????????注解的属性也叫做成员变量。注解只有成员变量,没有方法

????????????????注解的成员变量在注解的定义中以“无参的方法”形式来申明,

????????语法

????????????????声明语法

????????????????????????类型 名字() [ default 值 ];

????????注意:必须声明在注解类当中

????????????????类型限制:8种基本数据类型、类、接口、注解、他们的数组

????????????????多个之间使用分号隔开,

????????声明数组的形式

????????????????类型 []名字();

????????注意在赋值的时候只能是数组,单个值不需要进行数组化

?使用语法

????????@注解名(名字=值,……)

????????被注解的(方法,类,属性)

????????注意

????????????????如果注解当中只有一个value属性时,可以直接在括号里面填写值,不需要指定名字

????????????????在使用的时候,有属性的注解后面必须加上“()”括号,没有则不需要

????????????????在使用的时候,必须全部进行赋值,除了赋了默认值的

????????代码示例

????????????????注解类

//元注解
@Retention(RetentionPolicy.CLASS )//注解生存的时长
@Documented
//没有属性的注解
public @interface Annotations {
	
}
//有属性的注解
@Target(ElementType.CONSTRUCTOR)//指定注解运用的地方
@interface Annotation2{
	String  name() default "1" ;//声明单个属性,赋默认值
	String []age();//声明数组的形式
}

????????注解测试类

@Annotations//没有属性的注解类
public class AnnotationsTask {
	@Annotations//注解方法
	public void a () {
		
		@Annotations//注解局部变量
		String name="";
		
		if(true) {
			
		}
	}
	@Annotations//注解成员变量
	public String name;
	
	@Annotation2(name="",age = { "" })//赋值数组必须赋数组
	public AnnotationsTask() {
		
	}
}

元注解

????????元注解就是可以使用到普通注解上面的注解

????????元注解分为

????????????????@Retention、@Documented、@Target、@Inherited、@Repeatable

????????@Retention()括号取值

????????????????RetentionPolicy枚举类型当中的其中一个

????????????????SOURCE:注解只在源码阶段保留

????????????????CLASS:注解只被保留在编译进行的时候

????????????????RUNTIME:注解可以保留在程序运行的时候,可以通过程序来获取注解信息

????????@Documented

????????????????这个不需要值,它的作用是能够将注解信息包含到javadoc当中去

????????@Target:表示注解能够注解的位置

????????????????Target是目标的意思,@Target指定了注解运用的地方

????????????????就是注解这个东西是可以写到任何地方的

????????????????那么我们就可以使用@Target,这个注解来进行限制

????????????????取值

????????????????ElementType是一个枚举,以下的都是枚举值

????????????????????????ANNOTATION_TYPE:可以给一个注解进行注解

????????????????????????CONSTRUCTIOR:可以给构造方法进行注解

????????????????????????FIELD:可以给属性进行注解

????????????????????????LOCAL_VARIABLE:可以给局部变量进行注解

????????????????????????METHOD:可以给方法进行注解

????????????????????????PACKAGE:可以给一个包进行注解

????????????????????????PARAMETER:可以给一个方法内的参数进行注解

????????????????????????TYPE:可以给一个类型进行注解,例如:类、接口、枚举

????????@Inherited:子类继承父类的注解

????????????????inherited是继承的意思,而是说一个父类被@Inherited注解过的注解进行主机的话

????????????????那么如果子类没有被任何注解应用的话,这个子类就继承了父类的注解

????????@Repeatable:可重复

????????????????Repeatable是可重复的意思,@Repeatable是java 1.8才加进来的

????????????????它里面必须要有一个 value 的属性,属性类型是一个被 @Repeatable 注解过的注解数组

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2021-11-22 12:12:16  更:2021-11-22 12:14:11 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 2:36:29-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码