黑马程序员_高新技术之注解浅谈
来源:互联网 发布:spark sql decimal 编辑:程序博客网 时间:2024/06/05 12:43
---------------------- ASP.Net+Unity开发、.Net培训、期待与您交流! ----------------------
一、注解的概述
注解相当于一种标记,在程序中加入了注解就等于为程序打上了某种标记,没加,则等于没有某种标记。开发工具和其他程序都可以用反射来了解类及各种元素上有五标记,及查看标记种类,然后去做相对应的事情。
注解可以加在包、类、字段、方法、方法的参数以及局部变量上。
二、注解的应用结构图
三、Java提供的几个基本注解
1、@SuppressWarnings的应用
通过System.runFinalizersOnExit(true);编译器会发出警告
这时候只需要加上@SuppressWarnings(“deprecation”)表示禁止警告(过期)。
2、@Deprecated
在方法上面加@Deprecated表示该方法过期,不建议试用。
3、@Override
@Override表示下边的方法是继承父类方法,对其覆盖。
四、自定义注解及其应用
1、定义一个简单的注解
<span style="font-size:18px;"><span style="white-space:pre"></span>public @interface MyAnnotation{}</span>2、将定义的注解应用在类中
<span style="font-size:18px;"><span style="white-space:pre"></span>@ MyAnnotation<span style="white-space:pre"></span>public Class AnnotationTest{ <span style="white-space:pre"></span>}</span>3、用反射进行测试AnnotationTest类的定义是否有@MyAnnotation
根据测试结果引出了@Retention元注解,元注解有三个值,分别是:
1>、RetetionPolicy.SOURCE对应java源文件即编译时期
2>、RetetionPolicy.CLASS对应Class文件
3>、RetetionPolicy.RUNTIME对应内存中的字节码文件,即运行时期
4、@Target元注解
@Target的默认值为任何元素,设置Target等于ElementType.METHOD,原来加在类上的注解就报错了,改为用数组方式设置{ElementType.METHOD, ElementType.TYPE}就可以了。
元注解及其枚举属性值都在java.lang.annptation包下面的类中。
五、为注解增加基本属性
1、我们知道注解的声明和接口类似,那么,我们也可以为其添加属性
从java语言规范中得知,对于注解的属性类型有限制,只能是8个基本类型、String类型、Enum类型、Annotation注解类型和Class类型。
<span style="font-size:18px;"><span style="white-space:pre"></span>public @interface MyAnnotation{ <span style="white-space:pre"></span>String name() default "张三"; //添加String类型的属性,并设置默认(缺省)值为 张三。</span>
<span style="font-size:18px;"><span style="white-space:pre"></span>int[] arr() defauult {1,2,3,4,5};<span style="white-space:pre"></span>//添加数组类型的属性,并设置默认(缺省)值。<span style="white-space:pre"></span>}</span>2、添加了属性值的注解使用方法
@MyAnnotation(name = "张三", arr = {1,2,3,4,5})
如果数组属性中只有一个元素,这时候属性值部分可以省略大括号。
3、枚举和注解类型的属性
枚举和注解都是特殊的类,不能用new创建他们的实例对象,创建枚举的实例对象就是在其中添加元素。
---------------------- ASP.Net+Unity开发、.Net培训、期待与您交流! ----------------------
详细请查看:www.itheima.com
- 黑马程序员_高新技术之注解浅谈
- 黑马程序员_高新技术之代理浅谈
- 黑马程序员_高新技术_注解
- 黑马程序员_高新技术加强_浅谈
- 黑马程序员_高新技术之内省和注解小结
- 黑马程序员_高新技术之javaBean,注解,类加载器
- 黑马程序员_高新技术-JDK1.5新特性之注解
- 黑马程序员_Java高新技术_注解
- 黑马程序员_高新技术:4) 注解、反射
- 黑马程序员_第七天_高新技术之注解入门和应用
- 黑马程序员---java高新技术一之注解
- 黑马程序员---java高新技术之注解
- 黑马程序员_java高新技术之注解
- 黑马程序员----高新技术----之JAVA注解
- 黑马程序员-高新技术-注解
- 黑马程序员-高新技术-注解
- 黑马程序员--高新技术--注解
- 黑马程序员_高新技术加强_浅谈2
- 数学之美读书笔记
- hive udaf开发入门和运行过程详解
- ganglia在hadoop中的配置:hadoop-metrics2.properties
- vim与复制,删除,粘贴,块操作以及快速替换功能
- nyoj927(01背包的思想)
- 黑马程序员_高新技术之注解浅谈
- RocketMQ 简介与环境搭建
- Exception in thread "HSQLDB Connection @429be9" java.lang.OutOfMemoryError: Java heap space
- Hive-UDAF开发指南
- LeetCode——Copy List with Random Pointer
- NTP for Windows,与Linux进行时间同步
- SQLite入门之基本语法
- ntpd与ntpdate的区别
- uva10828 - Back to Kernighan-Ritchie 约旦高斯消元