黑马程序员--基础加强--第七篇--注解
来源:互联网 发布:vc和c语言的区别 编辑:程序博客网 时间:2024/06/14 15:14
ASP.Net+Android+IOS开发.Net培训期待与您交流!
1,注解是什么?
注解相当于一种标记,其实是一种类,在程序中调用某个注解,相当于调用某个类。在程序中加了注解就等于为程序加了某种标记,没加则没有这种标记。
以后,javac编译器,开发工具和应用程序,可以用反射来了解你的类及各种元素上是否有无何种标记,看你有什么标记,就去干相应的事儿。
标记可以加在包,类,字段,方法,方法的参数以及局部变量上。常见的注解是@SuppressWarning @overwrite @Deprecated
@SuppressWarning
@SuppressWarnings("Deprecated")//取消编译器对main中过时方法的警告public static void main(String[] args) {System.runFinalizersOnExit(true);}
@Deprecated
@Deprecated//把下面方法写成过时的public static void sayHello(){System.out.println("Hi");}@Overwrite
@Override//这个还可以提示所写的类是不是重写public boolean equals(Object obj){System.out.println(obj);return false;}
2,注解在程序中有什么实际用途呢?
可以类中是否有注解
package Annotation;public class AnnotationTest { /** * @param args */@SuppressWarnings("Deprecated")//取消编译器对main中过时方法的警告public static void main(String[] args) {System.runFinalizersOnExit(true);if(AnnotationTest.class.isAnnotationPresent(ItcastAnnotation.class)){ItcastAnnotation annotation = AnnotationTest.class.getAnnotation(ItcastAnnotation.class);System.out.println(annotation);}}
package Annotation;import java.lang.annotation.ElementType;import java.lang.annotation.Retention;import java.lang.annotation.RetentionPolicy;import java.lang.annotation.Target;//元注解 元信息 元数据@Retention(RetentionPolicy.RUNTIME)//注解的生命周期 SOURCE CLASS@Target({ElementType.METHOD,ElementType.TYPE})public @interface ItcastAnnotation {}
为注解添加属性
属性就相当于注解的详细信息
可以添加方法,数组,枚举,甚至还可以添加注解
package Annotation;@ItcastAnnotation(annotationAttr=@MetaAnnotation("fix"),arrayAttr={1,2,3})public class AnnotationTest { /** * @param args */@SuppressWarnings("Deprecated")//取消编译器对main中过时方法的警告public static void main(String[] args) {System.runFinalizersOnExit(true);if(AnnotationTest.class.isAnnotationPresent(ItcastAnnotation.class)){ItcastAnnotation annotation = AnnotationTest.class.getAnnotation(ItcastAnnotation.class);System.out.println(annotation.color());//取属性应该使用方法的方式调用System.out.println(annotation.value());System.out.println(annotation.arrayAttr().length);//数组System.out.println(annotation.annotationAttr().value());//注解}}
package Annotation;import java.lang.annotation.ElementType;import java.lang.annotation.Retention;import java.lang.annotation.RetentionPolicy;import java.lang.annotation.Target;//元注解 元信息 元数据@Retention(RetentionPolicy.RUNTIME)//注解的生命周期 @Target({ElementType.METHOD,ElementType.TYPE})public @interface ItcastAnnotation {String color() default "blue";String value() default "xyz";int[] arrayAttr();//如果数组只有一个数据,可以省略大括MetaAnnotation annotationAttr() default @MetaAnnotation("ltm");//注解的属性还是}
ASP.Net+Android+IOS开发.Net培训期待与您交流!
0 0
- 黑马程序员--基础加强--第七篇--注解
- 黑马程序员--基础加强--第七篇--注解
- 黑马程序员基础加强---注解
- 《黑马程序员》基础加强---注解
- 黑马程序员 基础加强 注解
- 黑马程序员--基础加强注解
- 黑马程序员 22 Java基础加强-04-注解篇
- 黑马程序员_基础加强(5) 注解
- 黑马程序员_基础加强_注解
- 黑马程序员_基础加强(注解)
- 黑马程序员_基础加强_注解
- 黑马程序员_基础加强_注解
- 黑马程序员_基础加强之注解
- 【黑马程序员】java基础加强_注解
- 16--黑马程序员--基础加强之注解
- 黑马程序员---基础加强:注解、代理
- 黑马程序员-基础加强篇
- 黑马程序员:基础加强
- MyEclipse 底色配置
- vbs 解码 unicode
- Android LayoutInflater原理分析,带你一步步深入了解View(一)
- 就任运营部部门经理就职演讲
- Django:传参问题
- 黑马程序员--基础加强--第七篇--注解
- 双基回文数
- 一周云热点:Google打造云中Hadoop便捷版,强势对抗AWS
- Ubuntu 12.04下安装JDK7
- 研发周报:Java 8最终发布日期敲定,即使有bug也要发布
- win7下安装oracle11G系列之一:安装oracle11G软件
- Google打造云中Hadoop便捷版,强势对抗AWS
- php opcache 配置
- 解含有[x]的方程