注解,是未来技术的先驱者,会带来一股风暴的,很多框架已经运用了注解,反射,其中不乏hibernate,spring这样的赫赫有名的框架,该知识的精华在于可以很干练的表示某个类的所属的信息,从而利用反射,可以达到事半功倍的效果
这里以常用的生活例子,写注解的运用。
解释:有一个学生的注解,该注解包含学生的一些信息,其他类加载该注解时,可以设置响应的属性信息,从而判断其他类的信息,这就等于给该类加上了一种学生标签,类其实也是具体的···准确理解这句话,那么注解,就很好理解了
首先是一个学生类的注解:
package com.study.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.TYPE,ElementType.METHOD})//注解的运用场合(接口,类,枚举,方法,字段等等) public @interface StuAnnotation { String value() default "test";//可以设置默认值,当只有一个value方法时,在运用此注解时,只需要填写值 String id() default "000";//默认值 int age();//年龄 String[] hobbys();//学生爱好,数组爱好 ClassList whichClass();//所属班级,枚举类型 SchoolAnnotation school();//所属学校,注解类型 Class<?> isStu();//是否是学生,class类型 }
其次是该类所包含的班级枚举,学校类的注解,
package com.study.annotation; //班级枚举,三个班级 public enum ClassList { jk1, jk2, jk3 }
学校类的注解:
package com.study.annotation; public @interface SchoolAnnotation { String schoolName() ; }
然后一个类,加载该注解,不妨命名为Student类
package com.study.annotation; //设置学生信息,即加载注解信息 @StuAnnotation(age = 22, hobbys = { "football", "music", "acm" }, whichClass = ClassList.jk3, school = @SchoolAnnotation(schoolName = "xxx大学"), isStu = Student.class) public class Student { public void doSth(){ System.out.println("i am a student"); } }
最后是一个测试类
package com.study.annotation; public class MainTest { public static void main(String[] args) { if (Student.class.isAnnotationPresent(StuAnnotation.class)) {// 判断是否有StuAnnotation的注解 StuAnnotation stuAnnotation = Student.class.getAnnotation(StuAnnotation.class);// 如果有注解,返回注解的属性 // 返回各个属性信息 String value = stuAnnotation.value(); String id = stuAnnotation.id(); int age = stuAnnotation.age(); String[] hobbys = stuAnnotation.hobbys(); ClassList whichClass = stuAnnotation.whichClass(); SchoolAnnotation schoolAnnotation = stuAnnotation.school(); String schoolName = schoolAnnotation.schoolName();// 注解信息,向上再寻一层 Class<?> clazz = stuAnnotation.isStu(); // 输出信息F System.out.println("-----该类信息如下-----"); System.out.println("value:" + value); System.out.println("id:"+id); System.out.println("age:"+age); System.out.print("hobby:["); for(String hobby:hobbys){ System.out.print(hobby+"\t"); } System.out.println("]"); System.out.println("whichClass:"+whichClass); System.out.println("schoolName:"+schoolName); if(clazz.equals(Student.class)){ System.out.println("是否是学生:"+"是"); }else{ System.out.println("是否是学生:"+"否"); } } } }
相关推荐
java注解代码java注解代码java注解代码java注解代码java注解代码java注解代码java注解代码java注解代码java注解代码java注解代码java注解代码java注解代码java注解代码java注解代码java注解代码java注解代码java注解...
java注解和反射的个人学习笔记
JAVA注释模板以及详细设置解释等等。 注释模板 如何设置
Java注解实现
超级好用的 java 注释模板,吐血总结,整理。吐血总结,整理。
主要包括:普通java注解,hibernate注解,spring注解,struts2注解,对于学习注解的朋友有很大的帮助!
简述java注解功能及用法,有代码示例。看起来还成,比较简单,学spring注入的时候要用到注解注入的话,本书属于必看版。
java注释全解,内容全面,包括hibernate注解、Java注解、Spring注解、SSH全注解等内容,分为4个文档介绍。另附一些精品java学习资料,欢迎大家下载学习。
入门级java 注解学习示例代码
java注解解析知识要点 精简易懂
Java注解、反射、动态代理demo
Java 注解(Annotation) - 请认准 ih0qtq
java注解实现通用Excel中文表格转实体对象列表,支持中文表头,在Excel数据导入使用的通用工具类,代码简洁优雅 。基于注解实现的支持中文表头的读取Excel数据并转换为实体对象列表的工具类,使用该工具类可将Excel...
Java注解的使用例子,使用Ant编译,执行run.bat运行.
eclipse中java类注释模板,有需要的朋友可以参考使用。
这是自己总结的java注解 使用了思维导图,方便读取,快速阅读
java注解详解[文].pdf
java 注释模板 java 注释模板 java 注释模板 java 注释模板java 注释模板java 注释模板java 注释模板java 注释模板java 注释模板java 注释模板java 注释模板java 注释模板java 注释模板java 注释模板java 注释模板
自己做得java项目注释统计工具,可统计代码行数,注释行数,能统计各种注释样式,能看统计详细情况,能生成报表,可自由控制合格率!算法高效!
java 注解 反射 字节码 类加载 包括pdf资料以及全部源码文件,具有非常大参考价值和学习意义