java 1.5 annotation-3 设值让反射拿
2011年08月01日
java 1.5 annotation 的use
前面的什么都没有说,只是介绍基本知识
现在说说用途
注解里可以加属性
反射后可以得到
----------------------
擦播一下
每举和注解都是特殊的类
不可以new
创建每举就是往里加元素
创建注解@加标记
AnnoDemo的注解
public @interface AnnoDemo{
String value();
}
---------------------
@Target({ElementType.METHOD,ElementType.TYPE})
这里肯定看不懂了
有两个知识点
一,数组中只有一个元素时
{}可以不写,有两个了,肯定要写了
还有Target里,肯定有个属性叫value
★而且,还是数组
----------------
-----看看code吧
---------------------------
package com.ncs; public class EnumWithAbstractMethod { public static void main(String[] args) { TrafficLights trafficLights = TrafficLights.GREEN; System.out.println(trafficLights.time); //30 trafficLights = TrafficLights.YELLOW; System.out.println(trafficLights.time); //3 } public enum TrafficLights{ RED(30){ public TrafficLights nextLight(){ return GREEN; } } ,GREEN(30){ public TrafficLights nextLight(){ return YELLOW; } }, YELLOW(3){ public TrafficLights nextLight(){ return RED; } }; //每个灯都有下一个灯的方法, //我们用 抽象 方法 public abstract TrafficLights nextLight(); //上面这行不行的,需要你里面的 constants 实现 方法 //所以在RED后面的一对{}表示一个子类的实现,子类的名字不知道 private int time; //构造方法只可以是private //然后上面出错了 修改加() 就完全OK了 private TrafficLights(int time){this.time = time;} } }
--------------------------------------
package com.ncs.annotation; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; import com.ncs.EnumWithAbstractMethod; @Retention(RetentionPolicy.RUNTIME) @Target({ElementType.METHOD,ElementType.TYPE}) public @interface MyAnnotationDemo { //就把这个注解 用到 AnnotationDemo上看看再说吧 String color() default "green"; //类似接口,public 的 抽象的 String value(); int[] arr() default {2,5}; //@SuppressWarnings("deprecation")像这个, //实际上的指定了一个特殊的属性 value //那你就可以省略,直接写 字符串 //但是仅仅这样也不行,color还没有 //所以 还可以 指定默认值 //String color() default "green"; //这样 compiler就让你过了 //下面玩高级些 //每举一下,用前面写的每举 //默认有个红灯 我等下 打印 NEXT 灯, 看看是什么灯出来了 EnumWithAbstractMethod.TrafficLights light() default EnumWithAbstractMethod.TrafficLights.RED; //当然 注解里还可以有注解 //这自己好好弄弄吧,慢慢理解 //详细的东西可以 //去:The Java Language Specification,Third Edition }
-----------------------------
package com.ncs.annotation; @MyAnnotationDemo(color="red",value="var",arr={1,2 ,3}) public class AnnotationDemo { @SuppressWarnings("deprecation") public static void main(String[] args) { System.runFinalizersOnExit(true); //在ECLIPSE里会画删除线,提示方法过时 //其实在是告诉javac //写了@SuppressWarnings("deprecation") //就不警告了 } @Deprecated public static void sayHi() { //总有一天这个方法要过时, //但是你不敢删除, //因为N多人在用,你一删人家怎么 compile 呢? //但是你又想告诉人家 ,这方法过时了,怎么办?? //注解, System.out.println("hello,zxx"); } }
----------------------------
package com.ncs.annotation; public class MyAnnoTest { public static void main(String[] args) { //先判断 某个类 有没有 某个 注解 if(AnnotationDemo.class.isAnnotationPresent(MyAnno tationDemo.class)) { //cun zai de MyAnnotationDemo myAnnotationDemo = (MyAnnotationDemo)AnnotationDemo.class.getAnnotati on(MyAnnotationDemo.class); System.out.println(myAnnotationDemo.color());//out put red System.out.println(myAnnotationDemo.value()); System.out.println(myAnnotationDemo.arr().length); /* * red var 3 */ //虽然都没有写,但是有默认值,就出来 绿灯了 System.out.println(myAnnotationDemo.light().nextLi ght().name()); //out GREEN } } }
-------------------
发表评论
-
Linux驱动学习――网络接口DM9000驱动学习 mini2440
2012-01-20 08:22 1368Linux驱动学习――网络接口DM9000驱动学习 mini2 ... -
《Linux内核设计与实现》ch14
2012-01-20 08:22 552《Linux内核设计与实现 ... -
从头开始编写操作系统(8) 第7章:系统结构
2012-01-20 08:22 595从头开始编写操作系统( ... -
Linux进程地址空间
2012-01-20 08:22 727Linux进程地址空间 2011年04月10日 1.概述 ... -
堆和栈的区别
2012-01-20 08:22 559堆和栈的区别 2010年10 ... -
自动下载并运行的VBS脚本代码[转载]
2012-01-19 13:35 536自动下载并运行的VBS脚本代码[转载] 2012年01月15 ... -
Windows XP的小秘密 {10}
2012-01-19 13:35 797Windows XP的小秘密 {10} 2011年06月03 ... -
Redflag SP3 介绍
2012-01-19 13:35 770Redflag SP3 介绍 2010年07月05日 ... -
MAX三百问(珍藏版)上
2012-01-19 13:34 710MAX三百问(珍藏版)上 2011年06月13日 安装篇 ... -
Windows XP的小秘密 {7}
2012-01-17 03:24 610Windows XP的小秘密 {7} 201 ... -
Windows下Android开发环境配置
2012-01-17 03:24 443Windows下Android开发环境配置 2011年06月 ... -
Zigbee入门指导(二)
2012-01-17 03:24 795Zigbee入门指导(二) 2010年08月06日 Zi ... -
周围的那些个朋友们????????????
2012-01-16 01:59 773周围的那些个朋友们???????????? 2011年01月 ... -
123
2012-01-16 01:58 471123 2010年06月12日 ... -
转:不断迎接最美好的你自己--- ―一个经络按摩师的生涯规划
2012-01-16 01:58 695转:不断迎接最美好的你 ... -
广告销售的技巧
2012-01-16 01:58 490广告销售的技巧 2010年0 ... -
struts2 处理请求流程分析(结合源码)1- 孤星随缘ツ http://t.sina.com.cn/samzhxing-iteye技术网站
2012-01-11 02:00 582struts2 处理请求流程分析(结合源码)1- 孤星随缘ツ ... -
JavaScript中setTimeout()
2012-01-11 02:00 494JavaScript中setTimeout() 2011年0 ... -
键盘事件
2012-01-11 01:59 459键盘事件 2011年08月01日 键盘事件的种类: ... -
案例学习Oracle错误:ORA-00604 | 主流数据库的比较
2012-01-11 01:59 629案例学习Oracle错误:ORA-00604 | 主流数据库的 ...
相关推荐
赠送jar包:jakarta.annotation-api-1.3.5.jar; 赠送原API文档:jakarta.annotation-api-1.3.5-javadoc.jar; 赠送源代码:jakarta.annotation-api-1.3.5-sources.jar; 赠送Maven依赖信息文件:jakarta.annotation...
赠送jar包:javax.annotation-api-1.2.jar; 赠送原API文档:javax.annotation-api-1.2-javadoc.jar; 赠送源代码:javax.annotation-api-1.2-sources.jar; 赠送Maven依赖信息文件:javax.annotation-api-1.2.pom;...
赠送jar包:jakarta.annotation-api-1.3.5.jar; 赠送原API文档:jakarta.annotation-api-1.3.5-javadoc.jar; 赠送源代码:jakarta.annotation-api-1.3.5-sources.jar; 赠送Maven依赖信息文件:jakarta.annotation...
赠送jar包:javax.annotation-api-1.3.2.jar; 赠送原API文档:javax.annotation-api-1.3.2-javadoc.jar; 赠送源代码:javax.annotation-api-1.3.2-sources.jar; 赠送Maven依赖信息文件:javax.annotation-api-...
java1.5 annotation注释源代码,
赠送jar包:javax.annotation-api-1.2.jar; 赠送原API文档:javax.annotation-api-1.2-javadoc.jar; 赠送源代码:javax.annotation-api-1.2-sources.jar; 赠送Maven依赖信息文件:javax.annotation-api-1.2.pom;...
point-cloud-annotation-tool win10解压直接运行
赠送jar包:javax.annotation-api-1.3.2.jar; 赠送原API文档:javax.annotation-api-1.3.2-javadoc.jar; 赠送源代码:javax.annotation-api-1.3.2-sources.jar; 包含翻译后的API文档:javax.annotation-api-...
JDK9及以上版本没有javax.annotation-api-***.jar包 ,无法使用注解:@Resource JDK新特性,高版本JDK没有自带的javax(java扩展包)了。或者是使用的JDK不完整。 下载javax.annotation.jar包,导入到lib文件夹下,...
androidx-annotation-1.0.0.jar
github链接链接:https://github.com/springzfx/point-cloud-annotation-tool 在windows平台编译完成后的exe和dll文件,可以直接打开使用,并对原项目进行了优化,增加了列表和标注文件的显示功能,标注起来更快,...
androidx-annotation-1.2.0.jar
@androidx.annotation.NonNull 缺失的兼容、androidx.annotation兼容包
赠送jar包:mybatis-plus-annotation-3.2.0.jar; 赠送原API文档:mybatis-plus-annotation-3.2.0-javadoc.jar; 赠送源代码:mybatis-plus-annotation-3.2.0-sources.jar; 赠送Maven依赖信息文件:mybatis-plus-...
注解、声明,@Resource注解所在的包
赠送jar包:mybatis-plus-annotation-3.1.0.jar; 赠送原API文档:mybatis-plus-annotation-3.1.0-javadoc.jar; 赠送源代码:mybatis-plus-annotation-3.1.0-sources.jar; 赠送Maven依赖信息文件:mybatis-plus-...
赠送jar包:mybatis-plus-annotation-3.5.1.jar; 赠送原API文档:mybatis-plus-annotation-3.5.1-javadoc.jar; 赠送源代码:mybatis-plus-annotation-3.5.1-sources.jar; 赠送Maven依赖信息文件:mybatis-plus-...
赠送jar包:mybatis-plus-annotation-3.5.1.jar; 赠送原API文档:mybatis-plus-annotation-3.5.1-javadoc.jar; 赠送源代码:mybatis-plus-annotation-3.5.1-sources.jar; 赠送Maven依赖信息文件:mybatis-plus-...
@Resource注解所在的jar包 与@Autowired不同的是此注解是ByName进行依赖注入的
javax.annotation-3.1.2.2-sources.jar,javax.annotation-3.1.2.2.jar无分共享