博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java 注解
阅读量:2489 次
发布时间:2019-05-11

本文共 1420 字,大约阅读时间需要 4 分钟。

很多人一看到注解就觉得很简单,里面无非就是单行注释,多行注释等内容!如果这样认为,请静下心来,其实这里面还有是一点技术,如果你想用注解提升自己的逼格,让自己更加专业一点!那么,搬个小板凳过来…… ->_-> ……

学习重点:自定义注解,利用自定义注解解决问题!

学习前提:掌握类中方法的反射 ,如不会请看反射(reflect)篇---

1 注解的引入

那么我们为什么要使用注解呢?

(1)为了可以读懂别人的代码,特别是框架型的spring,mybits等;

(2)让编程更加简洁,代码更加清晰

(3)让别人高看自己

注解的概念:Java中提供的一种 原程序中的元素 关联 任何信息和元数据动态途径和方法! 

2 常见注解

2.1 JDK自带的注解

继承型 @Override

自定义使用@Deprecated该注解表示方法不适合所有对象;使用时需要声明一下才能使用;

忽略警告型的@SuppressWarnings(“Unchecked”)@Suppress Warnings(“Deprecated”);

2.2 第三方注解

例如:

Spring框架中的: @Autowired、 @Service、 @Repository

Mybatis框架中的: @InsertProvider、 @UpdateProvider 、@Options

此处省略介绍,如需要,转到框架中学习相关的东西;

2.2 注解分类

按照运行机制分类:

(1)原码注解

  • 编译时注解(@Override、@Deprecated、@Suppress Warnings)
  • 运行时注解(@Autowired等)

(2)按照来源划分

  • JDK注解
  • 第三方注解
  • 自定义注解

元注解:给注解进行注释的注解 

2.3 自定义注解

语法、元注解、自定义注解的使用、解析注解

语法格式:

@Target({ElementType.METHOD,ElementType.TYPE})//作用范围:包、类、字段、方法、方法参数、局部变量@Retention(RetentionPolicy.RUNTIME)//生命周期:原码SOURCE、编译CLASS、运行RUNTIME@Inherited@Documentedpublic @interface Description {   String desc();   String author();   int age() default 18;//设置默认值为18;}
//如果注解只有一个成员,则成员名必须为value(),在使用时可以忽略成员名和赋值符号(=)。如下示例:@Target({ElementType.TYPE})@Retention(RetentionPolicy.RUNTIME) public @interface Table {String value();}

注解类可以没有成员,但是没有成员的注解类称为标识注解;

 

2.2 元注解

 

 

注解方法不可以有参数,不可以有异常;

注解的使用:

语法:@<注解名>(<成员名1>=<成员值1>,<成员名1>=<成员值1>,……)

示例:

@Description(desc=”I am eyeColor”, author=”Ternece’ , age=18)public String age(){   return 26;}

下一篇:如何定义并使用自定义注解,提高程序的质量!

 

你可能感兴趣的文章
很多人都不知道,其实博客园给我们博客开了二级域名
查看>>
tiny4412 linux+qtopia nfs网络文件系统的挂载
查看>>
Web UI 自动化测试环境搭建 (转载自51测试天地第三十九期上)
查看>>
在Bootstrap开发框架中使用bootstrap-datepicker插件
查看>>
String类中IndexOf与SubString
查看>>
记录下Linux难记实用的命令
查看>>
react 路由 react-router-dom
查看>>
Java工具类——通过配置XML验证Map
查看>>
Leetcode::Subsets
查看>>
JAVA 重写&重载/多态/抽象类/封装/接口/包
查看>>
关于js的function.来自百度知道的回答,学习了.
查看>>
学习正则表达式
查看>>
linux高级IO
查看>>
angualarjsdemo
查看>>
【C#】解析C#中JSON.NET的使用
查看>>
PyQt中从RAM新建QIcon对象 / Create a QIcon from binary data
查看>>
HTML5拖放API
查看>>
【Django】Django web项目部署(Nginx+uwsgi)
查看>>
JS中原型链的理解
查看>>
oracle服务器和客户端字符集的查看和修改
查看>>