Java 注解编程
来源:互联网 发布:淘宝 评价 期限 编辑:程序博客网 时间:2024/05/16 04:27
注解
注解相当于是一种标记,加了注解就等于打上了某种标记。注解可以加在包、类、字段、方法、方法的参数、局部变量上。开发工具和其它程序可以用反射来了解你的类及各种元素上有无何种标记,有什么标记就去干相应的事。
(1)Java 中的注解
@SuppressWarning 忽略警告
public class AnotationTest {@SuppressWarnings("deprecation")public static void main(String[] args) {System.runFinalizersOnExit(true);}}
@Deprecated 表示某个元素已经过时
public class AnotationTest {@SuppressWarnings("deprecation")public static void main(String[] args) {System.runFinalizersOnExit(true);sayHello();}@Deprecatedpublic static void sayHello(){System.out.println("DriverKing_斌");}}
@override 重写父类中的一个方法
public class AnotationTest {@SuppressWarnings("deprecation")public static void main(String[] args) {System.runFinalizersOnExit(true);sayHello();}@Deprecatedpublic static void sayHello(){System.out.println("DriverKing_斌");}@Overridepublic boolean equals(Object obj) {// TODO Auto-generated method stubreturn super.equals(obj);}@Overridepublic int hashCode() {// TODO Auto-generated method stubreturn super.hashCode();}}
(2)注解的自定义与反射调用
注解的应用结构图:
编写自定义注解:
@Retention(RetentionPolicy.RUNTIME) //元注解,这个参数表示该注解的生命周期保持到运行时public @interface MyAnotation {}
应用注解:
@MyAnotation//添加了自定义注解public class AnotationTest {public static void main(String[] args) {if(AnotationTest.class.isAnnotationPresent(MyAnotation.class)){//判断是否为注解类型MyAnotation anotation = AnotationTest.class.getAnnotation(MyAnotation.class);System.out.println(anotation);}}}
注解的生命周期:注解的生命周期有三个种: java源文件 -----> class文件 ----->内存中字节码
元注解:
@Retention ,表示该注解的生命周期。默认值为在 class 文件阶段。
@Target,表示该注解能被应用的范围。
@Retention(RetentionPolicy.RUNTIME) //元注解,这个属性表示该注解的生命周期保持到运行时@Target({ElementType.METHOD,ElementType.TYPE})//元注解,这个属性表示该注解应用在方法或各种类型身上,如果有多个属性,则用数组表示public @interface MyAnotation {}
为注解添加属性:
@MyAnotation(Color="red",value="abc",array={1,2,3},annotation=@MetaAnnotation("调用注解的注解"))//如果有属性且没有默认值,则必须指定属性值public class AnotationTest {public static void main(String[] args) {if(AnotationTest.class.isAnnotationPresent(MyAnotation.class)){MyAnotation anotation = AnotationTest.class.getAnnotation(MyAnotation.class);System.out.println(anotation.Color());}}}
@Retention(RetentionPolicy.RUNTIME) //元注解,这个参数表示该注解的生命周期保持到运行时@Target({ElementType.METHOD,ElementType.TYPE})//元注解,这个参数表示该注解应用在方法或各种类型身上,如果有多个参数,则用数组表示public @interface MyAnotation {String Color();//定义了一个属性,表示这个注解有一个颜色属性String value();//特殊的属性,如果只有一个 vlaue 属性,则在调用注解的时候可以直接写属性值,例如 @Retention("abc")String name() default "DriverKing_斌";//指定默认值int[] array() default {2,1};MetaAnnotation annotation() default @MetaAnnotation("注解的注解");}
public @interface MetaAnnotation {String value();}
- Java 注解编程
- JAVA注解编程
- Java注解编程指南
- java注解编程
- Java注解编程
- Java编程思想-注解
- Java编程之注解
- Java 编程思想--注解
- java编程思想-注解
- Java核心编程十三:注解
- Java编程思想-20注解
- 《Java编程思想》614页程序注解
- java编程思想-售货机程序注解
- 《Java 编程思想》--第二十章:注解
- 注解 Java编程思想 读书简记
- java 注解的基本原理和编程实现
- 《java编程思想》第二十章 注解
- JAVA编程思想-第20章-注解
- document.viewport.getHeight()返回为0
- 恐慌
- :nth-child选择器
- 生产者消费者模型与双缓冲队列
- c# 导出EXCEL
- Java 注解编程
- 烦人的java.util.concurrent锁
- TD分布式基站技术探讨
- 关于界面底侧或者左右侧出侧一条空白(statusbar的高度问题) 20 pixel blank at bottom of screen
- 消息队列(Message Queue)简介及其使用
- onInterceptTouchEvent和onTouchEvent调用时序
- 求一个数包含多少个1
- C# 5.0 - not quite there yet!
- arm中断及其处理