黑马程序员--Java注解的作用及使用方法详解
来源:互联网 发布:tensorflow入门 编辑:程序博客网 时间:2024/05/17 23:16
注解的作用:
1、生成文档。这是最常见的,也是java 最早提供的注解。常用的有@see @param @return 等
2、跟踪代码依赖性,实现替代配置文件功能。比较常见的是spring 2.5 开始的基于注解配置。作用就是减少配置。现在的框架基本都使用了这种配置来减少配置文件的数量。以后java的程序开发,最多的也将实现注解配置,具有很大用处;
3、在编译时进行格式检查。如@override 放在方法前,如果你这个方法并不是覆盖了超类方法,则编译时就能检查出。
使用方法详解:
下面是注解类,其实注解也就是一个类文件
package annotation;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import entity.PersonChiness;
/***
* Retention:保持、保留
* RetentionPolicy:政策、方针
* @author huawei
*@Retention
*1、指示注释类型的注释要保留多久。如果注释类型声明中不存在 Retention 注释,则保留策略默认为 RetentionPolicy.CLASS
*2、有三种取值(代表三个阶段):
* RetentionPolicy.SOURCE:保留注解到java源文件阶段,例如Override、SuppressWarnings
* RetentionPolicy.CLASS:保留注解到class文件阶段,例如
* RetentionPolicy.RUNTIME:保留注解到运行时阶段即内存中的字节码,例如Deprecated
*/
//元注解:表示的是注解的注解,(同义词有元信息、元数据)
//如果不加,javac会把这无用的注解丢掉
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.TYPE,ElementType.METHOD})//指定该注解使用的用处:用在class上和用在方法体上。
public @interface HelloAnnotation {
//返回值是String类型
String color() default "蓝色";//方法,但是相当于注解的属性,即:当成属性赋值,当成方法调用。
//默认value
String value();
String author() default "默认给定了属性";
//返回值是数组对象
int[] arrayAttr() default {1};
//返回值是注解类型
MetaAnnotation annotationAttr() default @MetaAnnotation("");
//返回CLASS对象
Class<PersonChiness> classType() default PersonChiness.class;
}
下面是实现注解的测试类:
package annotation;
/***
* 注解类:
* 1、相当于一种标记,加上注解就等于为程序打上了某种标记,没加,则等于没加某种标记,
* 2、以后javac编译器、开发工具或其他应用程序可以通过反射来了解你的类,以及各种元素上有无何种标记,
* 看你有什么标记,就去执行相应的命令和干相应的事。
* 3、标记用处地方:
* 加在包、类、字段、方法、方法的参数、局部变量
* @author huawei
*
*/
//自定义注解
@HelloAnnotation(color="红色",
value="如果只有value属性!可以不写属性名和等于号,直接写值即可!",
arrayAttr={1,2,3},
annotationAttr=@MetaAnnotation("返回注解类型规范形式。"))
public class AnnotationTest {
@SuppressWarnings("deprecation")//阻止警告
@HelloAnnotation("当为value属性时,可以省掉属性名和等于号。")
public static void main(String[] args) throws Exception{
System.runFinalizersOnExit(true);
if(AnnotationTest.class.isAnnotationPresent(HelloAnnotation.class)){
HelloAnnotation helloAnnotation =
(HelloAnnotation)AnnotationTest.class.getAnnotation(HelloAnnotation.class);
System.out.println("color(): "+helloAnnotation.color());
System.out.println("value(): "+helloAnnotation.value());
System.out.println("author(): "+helloAnnotation.author());
System.out.println("arrayAttr(): "+helloAnnotation.arrayAttr().length);
System.out.println("annotationAttr(): "+helloAnnotation.annotationAttr().value());
System.out.println("classType(): "+helloAnnotation.classType().newInstance().sayHello("hello,ketty"));
}
}
@Deprecated//自定义:备注过时的方法信息
public static void sayHello(){
System.out.println("hello,world");
}
}
- 黑马程序员--Java注解的作用及使用方法详解
- java 注解的作用及使用方法详解
- 注解 java 注解的几大作用及使用方法详解
- JAVA 注解的几大作用及使用方法详解
- Java 注解的几大作用及使用方法详解
- java 注解的几大作用及使用方法详解
- JAVA注解的几大作用及使用方法详解
- java 注解的几大作用及使用方法详解
- JAVA 注解的几大作用及使用方法详解
- JAVA 注解的几大作用及使用方法详解
- java 注解的几大作用及使用方法详解
- java 注解的几大作用及使用方法详解
- JAVA 注解的几大作用及使用方法详解
- JAVA 注解的几大作用及使用方法详解
- JAVA 注解的几大作用及使用方法详解
- JAVA 注解的几大作用及使用方法详解
- java 注解的几大作用及使用方法详解
- JAVA 注解的几大作用及使用方法详解
- IDEO:以洞悉人性为设计主轴
- OpenCV中IplImage*转化为cv::mat时出现的问题
- 在线为Eclipse安装SVN插件(svn 1.6)
- NSHashTable & NSMapTable
- 使用like删除表 mysql
- 黑马程序员--Java注解的作用及使用方法详解
- PDH获取指定网卡速度
- maven 常用命令
- NSCondition 用法示例
- 3个图表说明惠普、微软和戴尔将在科技大战中败下阵来!
- 武汉大学“多核架构及编程技术”精品课程理论教学
- 使用ASIHTTPRequest 编译提示找不到"libxml/HTMLparser.h"的解决方法
- win下 memcached 安装启动
- 从数组中取出n个元素的所有组合(递归实现)