- 浏览: 92976 次
- 性别:
- 来自: 苏州
文章分类
最新评论
-
jameswolf:
补肾啊!冬天多喝,但是补只是后招,别漏才是真理,呵呵
朋友告诉我的神粥秘方 -
wa327114652:
很想学习,但能再详细点吗?
for java beginner 5-2 - 自己实现枚举-下 -
superlittlefish:
不错,简单易懂.一直在看你的blog,感觉反射写的挺好的.让我 ...
for java beginner 15 下java反射在框架里的应用 读取properties文件
java 1.5 注解-2[非常重要 比每举重要]
刚刚只是说了什么是 注解 ,皮毛都不是
现在要自己弄注解了
就是要 @hubin
注解就相当于一个特殊的类,要用注解
得有人先开发好这个类
要用自己写的 注解 需要写三个类
注解类:
@interface A
{
}
应用了"注解类"的类
@A
class B
{
}
对用了注解类的类 进行反射操作的类
class C{
B.class.isAnnotionPresent(A.class);
A a = B.class.getAnnotion(A.class);
}
----------------------------
------------------------
-------------------------
------------------------------------------
运行后 什么都没有
那肯定是 if 没有成立
修改:
-------------------
------------------------
现在有了
@com.ncs.annotation.MyAnnotationDemo()
要在 注解 类上加 注解 告诉注解 ,你要保持到 运行时哦
注解的注解,元注解
数据的数据,元数据
信息的信息,元信息
@Retention(RetentionPolicy.RUNTIME)
要好好解释上面的一行
我现在是在*.java里写的这行
然后javac把这个compile为 *.class
compile时,会把*.java里的一些东西去了,比如// /**/ comments
@注解也可能会去掉,
所以我们还要告诉 javac ,这个注解要保持到什么时候
如果说不要了,那么等你拿到*.class 就看不到注解了
★即使compile到了*.class 文件
等我们用这个*.class的时候
还需要 classloader 去load 这堆字节码
此时,也会 放弃 一些 东西,不是统统load上来的
load时还会 做些处理,安全检查等....
不是你写个 二进制东西 就可以让 classloader 给你load的
所以注解有三个生命周期
RetetionPolicy.SOURCE ->java 源文件
RetetionPolicy.CLASS ->class文件
RetetionPolicy.RUNTIME ->内存里的字节码
默认值是在class 阶段
所以 刚刚第一次 没有出来什么
是因为 虽然在 *.class里是有的,但是classloader没有加载上来
后来我把它设置为@Retention(RetentionPolicy.RUNTIME)
就加载上来了
---再来看
@Override的生命周期是什么??
应该是 source
只是提示你有没有覆盖,变成class文件以后,这个就没有用了
@SuppressWarning
也是在 source
@Deprecated
要在runtime阶段
--------好好想想
-------------
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
上面行表示这可以加在 方法前,你写在类前 compiler都反对
如果希望可以出现在 类 , 方法 上
可以这样写:
@Target({ElementType.METHOD,ElementType.TYPE})
现在都可以,看清楚是TYPE,而不是CLASS
为什么呢??
Type 是 class的爸爸,
1.5后,有每举,有注释,有接口...都是 类
他们和类都是兄弟关系,类不大了,
最大的是type了
Interface Type 也是1.5 新出的
刚刚只是说了什么是 注解 ,皮毛都不是
现在要自己弄注解了
就是要 @hubin
注解就相当于一个特殊的类,要用注解
得有人先开发好这个类
要用自己写的 注解 需要写三个类
注解类:
@interface A
{
}
应用了"注解类"的类
@A
class B
{
}
对用了注解类的类 进行反射操作的类
class C{
B.class.isAnnotionPresent(A.class);
A a = B.class.getAnnotion(A.class);
}
----------------------------
package com.ncs.annotation; public @interface MyAnnotationDemo { //就把这个注解 用到 AnnotationDemo上看看再说吧 }
------------------------
package com.ncs.annotation; @MyAnnotationDemo 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(MyAnnotationDemo.class)) { //cun zai de MyAnnotationDemo myAnnotationDemo = (MyAnnotationDemo)AnnotationDemo.class.getAnnotation(MyAnnotationDemo.class); System.out.println(myAnnotationDemo); } } }
------------------------------------------
运行后 什么都没有
那肯定是 if 没有成立
修改:
-------------------
package com.ncs.annotation; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; @Retention(RetentionPolicy.RUNTIME) public @interface MyAnnotationDemo { //就把这个注解 用到 AnnotationDemo上看看再说吧 }
------------------------
现在有了
@com.ncs.annotation.MyAnnotationDemo()
要在 注解 类上加 注解 告诉注解 ,你要保持到 运行时哦
注解的注解,元注解
数据的数据,元数据
信息的信息,元信息
@Retention(RetentionPolicy.RUNTIME)
要好好解释上面的一行
我现在是在*.java里写的这行
然后javac把这个compile为 *.class
compile时,会把*.java里的一些东西去了,比如// /**/ comments
@注解也可能会去掉,
所以我们还要告诉 javac ,这个注解要保持到什么时候
如果说不要了,那么等你拿到*.class 就看不到注解了
★即使compile到了*.class 文件
等我们用这个*.class的时候
还需要 classloader 去load 这堆字节码
此时,也会 放弃 一些 东西,不是统统load上来的
load时还会 做些处理,安全检查等....
不是你写个 二进制东西 就可以让 classloader 给你load的
所以注解有三个生命周期
RetetionPolicy.SOURCE ->java 源文件
RetetionPolicy.CLASS ->class文件
RetetionPolicy.RUNTIME ->内存里的字节码
默认值是在class 阶段
所以 刚刚第一次 没有出来什么
是因为 虽然在 *.class里是有的,但是classloader没有加载上来
后来我把它设置为@Retention(RetentionPolicy.RUNTIME)
就加载上来了
---再来看
@Override的生命周期是什么??
应该是 source
只是提示你有没有覆盖,变成class文件以后,这个就没有用了
@SuppressWarning
也是在 source
@Deprecated
要在runtime阶段
--------好好想想
-------------
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
上面行表示这可以加在 方法前,你写在类前 compiler都反对
如果希望可以出现在 类 , 方法 上
可以这样写:
@Target({ElementType.METHOD,ElementType.TYPE})
现在都可以,看清楚是TYPE,而不是CLASS
为什么呢??
Type 是 class的爸爸,
1.5后,有每举,有注释,有接口...都是 类
他们和类都是兄弟关系,类不大了,
最大的是type了
Interface Type 也是1.5 新出的
发表评论
-
pull解析器通用解析XML与生成XML
2013-02-23 14:52 0pull解析器,简单易用,android都在用,肯定有他的优 ... -
java decompiler - a tool to view jar file
2012-02-15 22:26 961有时候还是很需要看看人家JAR包里写的什么乱七八糟的东西,这东 ... -
JAVA工作
2011-07-20 21:11 687################## Applet ... -
helios-use-subversion-behind-proxy
2011-04-04 16:30 733download the eclipse helios in ... -
IBM发布时间不足解决方法
2011-02-17 19:16 724D:\IBM\SDP\runtimes\base_v61\p ... -
log4j简单例子
2010-10-03 18:27 822简单点说, 写程序时,有时懒得debug,就直接Sy ... -
java 泛型-1-使用而已
2009-12-01 23:39 1026023-java1.5泛型-1 懒人想的 把检查代码的工作交 ... -
java 1.5 annotation-3 设值让反射拿
2009-12-01 20:39 1544java 1.5 annotation 的use 前面的什么 ... -
java 1.5 annotation-1
2009-11-30 21:07 1268java 1.5 注解[非常重要 比每举重要] 1.5后的新 ... -
for java beginner-19 beanutils包
2009-11-29 22:20 723019-使用BeanUtils工具包操 ... -
for java beginner-18 JAVABEAN规范-1
2009-11-29 21:12 985018-JAVABEAN规范-1 IntroSpec ... -
for java beginner 17 配置文件的知识
2009-11-29 19:29 751017 配置文件的知识 刚刚已经说到 配置文件,我说放 工程 ... -
for java beginner 15 下java反射在框架里的应用 读取properties文件
2009-11-29 17:44 1343java 框架基础 ------------------- ... -
for java beginner 14 ArrayList HashSet HashCode(中)
2009-11-29 13:24 1091java 反射 数组的反射 ArrayList HashSe ... -
for java beginner13java 反射 数组的反射(上)其实是讲ArrayList HashSet HashCode
2009-11-29 12:35 888java 反射 数组的反射(上 ... -
for java beginner12数组的反射的应用
2009-11-29 10:04 956java 反射 数组的反射 数组也是一种类型,当然可以反射 ... -
for java beginner11 java 反射 Method类
2009-11-29 08:30 1209java 反射 Method类 str1.charAt() ... -
for java beginner10 java 反射 Field类
2009-11-29 07:17 3500java 反射 Field类 -------用到一个bea ... -
for java beginner 9 java反射的概念和Constructor 类
2009-11-29 07:13 1341java 反射 的概念 和 Constructor 类 反 ... -
for java beginner 8 java 反射的基础基础Class的理解
2009-11-29 07:09 968java 反射 的基础基础 Class的理解 反射 在 1 ...
相关推荐
java1.5 annotation注释源代码,
Annotation Config Spring 3.0 ------> 2010 - 2012 Spring 3.2 ------> 2012 -- Support for Java7, Hibernate, Servlet 3.0 -- Required Java 1.5+ -- Java Configuration Appraoch Spring 4.0 -------> ...
Annotation java1.5 jdk.15 简单介绍
Annotation使用手册,提供JAVA 1.5+版本关于Annotation的新特性的详细说明和使用
实战篇:设计自己的Annotation
jackson-annotation-2.3.0.jar jackson-core-2.3.3.jar jackson-databind-2.3.3.jar java_websocket.jar javassist-3.11.0.GA.jar jaxen-1.1.jar jboss-logging-3.1.4.GA.jar jboss-logging-annotations-...
包括以下包:jdt-3.2.1-r321_v20060823.jar、 jdt-3.3.0-v20070607-1300.jar、jdt-3.4.2_r894.jar、jdt-compiler.jar、org.eclipse.datatools.enablement.jdt.classpath...org.eclipse.m2e.jdt_1.5.1.20150109-1820.jar
第2章 测试设计模式 2.1 针对失败而测试 2.2 工厂 2.3 数据驱动测试 2.4 异步测试 2.5 测试多线程代码 2.6 性能测试 2.7 模拟和桩 2.8 依赖的测试 2.9 继承和annotation范围 2.10 测试分组 2.11 代码覆盖率 2.12...
第2章 测试设计模式 2.1 针对失败而测试 2.2 工厂 2.3 数据驱动测试 2.4 异步测试 2.5 测试多线程代码 2.6 性能测试 2.7 模拟和桩 2.8 依赖的测试 2.9 继承和annotation范围 2.10 测试分组 2.11 代码覆盖率 2.12...
JDK1.5之后的特征 用于说明程序 一般在框架中使用 格式: @AnnotationName 文档注释: @param @return @Exeception 从根本上是一个注释,不存在代码编译,不会生成对应的.class字节码问题,只是提供给JavaDoc API文件...
JDK5.0 Annotation 入门介绍 PDF
第1章 Java基础 1.1 转换基本数据类型 1.2 Java的运算符 1.3 控制程序的流程 1.4 计算阶乘 1.5 实现命令行程序 第2章 Java面向对象程序设计 2. 1 复数类 2. 2 equals.chashCode...
1.1 Java语言的发展简史 2 1.2 Java的竞争对手及各自优势 4 1.2.1 C#简介和优势 4 1.2.2 Ruby简介和优势 4 1.2.3 Python的简介和优势 5 1.3 Java程序运行机制 5 1.3.1 高级语言的运行机制 6 1.3.2 Java程序的...
泛型是Java SE 1.5的新特性,好处是在...注解(Annotation)是JDK1.5及以后引入的新特性,与类、接口、枚举是在同一个层次。可声明在包、类、字段、方法、局部变量、方法参数等前面,用来对这些元素进行说明,注释。
第二部分详细讲解了jsf ri、jta、jndi、rmi、jms、javamail、ejb 3的session bean、message driven bean、jpa、jax-ws 2、jaas等java ee知识,这部分知识以jsf+ejb 3+jpa整合开发为重点,通过使用netbeans ide工具...
注解(Annotation),也叫元数据。一种代码级别的说明。它是JDK1.5及以后版本引入的一个特性,与类、接口、枚举是在同一个层次。它可以声明在包、类、字段、方法、局部变量、方法参数等的前面,用来对这些元素进行...
HIBERNATE - 符合Java习惯的关系数据库持久化 Hibernate参考文档 3.2 -------------------------------------------------------------------------------- 目录 前言 1. 翻译说明 2. 版权声明 1. Hibernate...
1.5 与 Java 平台企业版的关系 ......................................................................................................................14 1.6 与 Java Servlet 规范 2.5 版本间的兼容性 .........
在weblogic9 tomcat5-7 JDK1.5测试通过 weblogic9和tomcat5需要el.jar支持,已经在文件夹中标明,只需放入lib目录下即可 需要注意的是weblogic9和tomcat5支持的jar包不能在tomcat6-7版本使用否则无法启动! 分类: 1...
<mvc:annotation-driven /> <context:component-scan base-package="Controller" /> <property name="prefix" value="/WEB-INF/views/" /> GeneralController类代码 package Controller; import org...