Java注解-元数据、注解分类、内置注解和自定义注解|乐字节


- 元数据
- 注解的分类
- 内置注解
- 自定义注解
- 注解处理器
- Servlet3.0
一、注解简介
二、 元数据metadata
三、 注解的分类
四、 内置注解
public interface Car {
void run();
}
class QQ implements Car{
@Override
public void run() {}
}
class Bmw implements Car{
@Override
void run() {}
}
/**
* Deprecated -->该方法过时(有更好的解决方案)
* @author Administrator
*/
public class TestDeprecated {
@Deprecated
public int test(){
System.out.println("TestDeprecated.test()");
return 0;
}
public void test(int a){
System.out.println("TestDeprecated.test(int)");
}
}
/**
* SuppressWarnings 压制警告
* @author Administrator
*/
public class TestSuppressWarnings {
public static void main(String[] args) {
@SuppressWarnings("unused")
List<String> list =new ArrayList<String>();
}
@SuppressWarnings("rawtypes") //没有定义范型
public static List test(){
return new ArrayList();
}
}
五、 自定义注解
//此注解只能用在方法上
@Target(ElementType.METHOD)
@interface TestMethod {}
// 此注解可以用于注解类、接口(包括注解类型) 或enum声明
@Target(ElementType.TYPE)
//该注解运行时有效。注解处理器可以通过反射,获取到该注解的属性值,从而去做一些运行时的逻辑处理
@Retention(RetentionPolicy.RUNTIME)
@interface TestRn{
}
//可以被例如javadoc此类的工具文档化
@Documented
@interface TestDoc{
}
/*
* 码农定义注解
*/
@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@interface Programmer{
String value() default "马云";
}
/**
* 码农类型注解
* @author peida
*/
@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@interface ProgrammerType {
/**
* 类型枚举 程序猿 射鸡师
*/
public enum CoderType{MONKEYS,LION,CHOOK};
/**
* 颜色属性
*/
CoderType type() default CoderType.MONKEYS;
}
/**
* 码农制造厂
* @author Administrator
*/
@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@interface ProgrammerProductor {
/**
* 厂家编号
* @return
*/
public int id() default -1;
/**
* 厂家名称
* @return
*/
public String name() default "shsxt";
/**
* 厂家地址
* @return
*/
public String address() default "上海";
}
/**
* 注解使用
*/
class Coder{
@Programmer("老裴")
private String coderName;
@ProgrammerType(type=CoderType.MONKEYS)
private String coderType;
@ProgrammerProductor(id=1,name="程序猿乐园",address="荣乐东路")
private String coderProductor;
public String getCoderName() {
return coderName;
}
public void setCoderName(String coderName) {
this.coderName = coderName;
}
public String getCoderType() {
return coderType;
}
public void setCoderType(String coderType) {
this.coderType = coderType;
}
public String getCoderProductor() {
return coderProductor;
}
public void setCoderProductor(String coderProductor) {
this.coderProductor = coderProductor;
}
} 乐字节原创,转载请注明出处
Java注解-元数据、注解分类、内置注解和自定义注解|乐字节的更多相关文章
- 自学Python3.3-函数分类(内置函数补充)
自学Python之路-Python基础+模块+面向对象自学Python之路-Python网络编程自学Python之路-Python并发编程+数据库+前端自学Python之路-django 自学Pyth ...
- 9.1hadoop 内置计数器、自定义枚举计数器、Streaming计数器
1.1 计数器 计数器的作用是用来统计数量的,用于记录特定事件的次数,分为内置计数器.自定义java枚举计数器.自定义Stream计数器三大类.用于质量分析,或应用级统计.分析计数器的值比分析一堆日 ...
- VUE:内置指令与自定义指令
VUE:内置指令与自定义指令 常用的内置指令 1)v:text 更新元素的 textContent 2)v-html 更新元素的 innerHTML 3)v-if 如果为true,当前标签才会输出到页 ...
- Linux常用基本命令:三剑客命令之-awk内置变量与自定义变量
AWK中,变量分为两种:内置变量与自定义变量. 常见的内置变量有: FS:输入字段分隔符, 默认为空白字符 OFS:输出字段分隔符, 默认为空白字符 RS:输入记录分隔符(输入换行符), 指定输入时的 ...
- Angular中的内置指令和自定义指令
NG中的指令,到底是什么(what)? 为什么会有(why)?以及怎样使用(how)? What: 在NG中,指令扩展HTML功能,为 DOM 元素调用方法.定义行为绑定数据等. Why: 最大程度减 ...
- form-create教程:给内置组件和自定义组件添加事件
本文将介绍form-create如何给内置组件和自定义组件添加事件 form-create 是一个可以通过 JSON 生成具有动态渲染.数据收集.验证和提交功能的表单生成器.并且支持生成任何 Vue ...
- java web 学习笔记 jsp内置对象
jsp2 表达式语言的内置对象 使用方式${object.attributename} 或者${object["attributename"]} pageContext pageS ...
- 菜鸟学Java(五)——JSP内置对象之request
书接上回,上次跟大家概括的说了说JSP的九种常用内置对象.接下来就该聊聊它们各自的特点了,今天先说说request吧. 下面是request的一些常用方法: isUserInRole(String r ...
- 菜鸟学Java(四)——JSP内置对象
学习JavaWeb就离不开JSP,而学习JSP又不得不了解它常用的九个内置对象.今天来做一个简单介绍. request Request封装了用户提交的信息,通过调用Request相应的方法可以获取封装 ...
- java基础81 jsp的内置对象(网页知识)
1.什么是内置对象? 在jsp开发中,会频繁使用到一些对象,如:HttpSession,ServletContext,HttpServletRequest. 如果每次使用这些对象时,都要去创 ...
随机推荐
- jmeter通过ant执行时报错 jmeter.log not found
原因:权限执行不够,改为root用户即可 :sudo su 日志报错如下: test: [jmeter] Executing test plan: /home/ec2-user/jmeterProg ...
- fluent meshing导入二维网格
meshing导入二维网格"> fluent meshing只能在Dimension为3D时才能使用 meshing导入二维网格"> 其实也可以导入二维网格,具体操作见 ...
- 06 、指令跳转:原来if...else就是goto
写好的代码编译成指令之后,一般正常流程是一条一条的顺序执行的.但是在程序中总会用到if...else这样的条件判断语句.while和for循环语句,还有函数或者过程调用,所以遇到这些程序编译的指令时是 ...
- 作业要求2018092609-2 选题 Scrum立会报告+燃尽图 05
此作业要求参见:https://edu.cnblogs.com/campus/nenu/2019fall/homework/8678 一.小组情况组长:贺敬文组员:彭思雨 王志文 位军营 杨萍队名:胜 ...
- Java初级黄金体验 其一
关于作者 作者背景:公元2001年,意大利那不勒斯少年,为了达成梦想,在国庆的三天发现自己替身能力Java.从而加入了黑手党组织,并成为...... 作者目的:入门Java 为了Fighting Go ...
- qt creator中常用快捷键
激活欢迎模式 Ctrl + 1 激活编辑模式 Ctrl + 2 激活调试模式 Ctrl + 3 激活项目模式 Ctrl + 4 激活帮助模式 Ctrl + 5 激活输出模式 Ctrl + 6 查找当前 ...
- windows下jenkins的安装与配置
项目自动化部署: https://www.cnblogs.com/wuxunyan/p/9592953.html https://blog.csdn.net/qq_37372007/article/d ...
- Js-事件分发与DOM事件流
原文地址:https://www.jianshu.com/p/dc1520327022 Js事件分发与DOM事件流 对JavaScript分发事件不熟悉,网上查阅相关资料整理后,记录一下对Javasc ...
- vs 设置护眼背景颜色
工具 —> 选项 —> 环境 —> 字体和颜色 —> 纯文本(显示项中) —> 项目背景 —> 自定义—> 色调位85.饱和度123.亮度205,保存即可.测 ...
- pycharm怎么修改python路径
今天安装Django的时候遇到了python版本冲突,找不到python路径,所以又重新安装了一个python3.6.5 安装完之后,突然发现自己的pycharm是之前Anaconda的3.5版本,那 ...