-
对注解的学习
注解:对程序进行解释(但不是注释)
1.内置注解:
@Override:定义在java.lang.Override中,此注释只适用于修辞方法,表示一个方法声明打算重写超类红的另一个方法的声明
@Deprecated:定义在java.lang.Deprecated中,次注释可以用于修辞方法,属性,类,表示不鼓励程序员使用这样的元素,通常是因为它很危险或者存在根号的选择
@SuppressWarnings:用于抑制编译时的警告信息
2.源注解:
负责注解其他注解,java定义的4个标准的meta-annotion类型,他们用来提供对1其他annotion类型做说明
(1)@Target:用于描述注解的使用范围(被描述的注解可以用在什么地方)
(2)@Retention:表示需要在什么级别保存该注释信息,用于描述注解的生命周期(表示我们的注解在什么地方还有效)
(3)@Document:说明该注释被包含在javadoc中
(4)@Inherited:说明2子类可以继承父类中的该注释
3.自定义注解:
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
public class Test1 {
@MyAnnotion(name = "梵蒂冈的",schools = "西南大学")
public void test(){
System.out.println("jjaa");
}
public static void main(String[] args) {
Test1 test1 = new Test1();
test1.test();
}
}
@Target({ElementType.TYPE,ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@interface MyAnnotion{
//default 为定义默认值
String name() default "";
int age() default 0;
int id() default -1; //如果默认值为-1,则不存在
String[] schools() default "";
}
@Target({ElementType.TYPE,ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@interface MyAnnotion{
String value();//如果只有一个值,最好使用value
}
我们可以通过反射机制编程实现对元数据的访问
相当于给他们添加了辅助信息,可以更方便的读取代码
原文:https://www.cnblogs.com/haoyangyouli/p/15766647.html
栏目列表
最新更新
springboot~某个接口模拟登录并同步给feig
Java反射中与自动装箱有关的坑及其解决方
java 基础语法学习
面试被问Java序列化和反序列化为什么要实
你还在用命令看日志?快用 Kibana 吧,一
【JAVA并发第一篇】Java的进程与线程
【JAVA并发第四篇】线程安全
初窥MyBatis-普通的CRUD操作
mybatis(1)
HTTP常用请求头大揭秘
MongoDB常用命令(2)
MongoDB基本介绍与安装(1)
SQLServer触发器调用JavaWeb接口
SQL Server索引的原理深入解析
SqlServer2016模糊匹配的三种方式及效率问题
SQL中Truncate的用法
sqlserver 多表关联时在where语句中慎用tri
链接服务器读取Mysql---出现消息 7347,级别
SQL Server解惑——为什么你拼接的SQL语句换
MySQL视图了解一下
es6 快速入门 系列 —— 类 (class)
前端 Validform.js属性,用法及Ajax提交简介
前端甘特图dhtmx-gantt
Typescript开发学习总结(附大量代码)
koa2+mock实现一个数据服务器
JavaScript 面向对象编程思想的理解
js原型和原型链
有关Js 创建对象的几种方式
Js 原型链
js中的隐式转换