- 浏览: 97192 次
- 性别:
- 来自: 苏州
文章分类
最新评论
-
jameswolf:
补肾啊!冬天多喝,但是补只是后招,别漏才是真理,呵呵
朋友告诉我的神粥秘方 -
wa327114652:
很想学习,但能再详细点吗?
for java beginner 5-2 - 自己实现枚举-下 -
superlittlefish:
不错,简单易懂.一直在看你的blog,感觉反射写的挺好的.让我 ...
for java beginner 15 下java反射在框架里的应用 读取properties文件
java 1.5 annotation 的use
前面的什么都没有说,只是介绍基本知识
现在说说用途
注解里可以加属性
反射后可以得到
----------------------
擦播一下
每举和注解都是特殊的类
不可以new
创建每举就是往里加元素
创建注解@加标记
AnnoDemo的注解
public @interface AnnoDemo{
String value();
}
---------------------
@Target({ElementType.METHOD,ElementType.TYPE})
这里肯定看不懂了
有两个知识点
一,数组中只有一个元素时
{}可以不写,有两个了,肯定要写了
还有Target里,肯定有个属性叫value
★而且,还是数组
----------------
-----看看code吧
---------------------------
--------------------------------------
-----------------------------
----------------------------
-------------------
前面的什么都没有说,只是介绍基本知识
现在说说用途
注解里可以加属性
反射后可以得到
----------------------
擦播一下
每举和注解都是特殊的类
不可以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(MyAnnotationDemo.class)) { //cun zai de MyAnnotationDemo myAnnotationDemo = (MyAnnotationDemo)AnnotationDemo.class.getAnnotation(MyAnnotationDemo.class); System.out.println(myAnnotationDemo.color());//output red System.out.println(myAnnotationDemo.value()); System.out.println(myAnnotationDemo.arr().length); /* * red var 3 */ //虽然都没有写,但是有默认值,就出来 绿灯了 System.out.println(myAnnotationDemo.light().nextLight().name()); //out GREEN } } }
-------------------
发表评论
-
pull解析器通用解析XML与生成XML
2013-02-23 14:52 0pull解析器,简单易用,android都在用,肯定有他的优 ... -
java decompiler - a tool to view jar file
2012-02-15 22:26 1026有时候还是很需要看看人家JAR包里写的什么乱七八糟的东西,这东 ... -
JAVA工作
2011-07-20 21:11 733################## Applet ... -
helios-use-subversion-behind-proxy
2011-04-04 16:30 769download the eclipse helios in ... -
IBM发布时间不足解决方法
2011-02-17 19:16 767D:\IBM\SDP\runtimes\base_v61\p ... -
log4j简单例子
2010-10-03 18:27 877简单点说, 写程序时,有时懒得debug,就直接Sy ... -
java 泛型-1-使用而已
2009-12-01 23:39 1131023-java1.5泛型-1 懒人想的 把检查代码的工作交 ... -
java 1.5 annotation-2
2009-11-30 23:28 1188java 1.5 注解-2[非常重要 比每举重要] 刚刚只是 ... -
java 1.5 annotation-1
2009-11-30 21:07 1326java 1.5 注解[非常重要 比每举重要] 1.5后的新 ... -
for java beginner-19 beanutils包
2009-11-29 22:20 756019-使用BeanUtils工具包操 ... -
for java beginner-18 JAVABEAN规范-1
2009-11-29 21:12 1038018-JAVABEAN规范-1 IntroSpec ... -
for java beginner 17 配置文件的知识
2009-11-29 19:29 785017 配置文件的知识 刚刚已经说到 配置文件,我说放 工程 ... -
for java beginner 15 下java反射在框架里的应用 读取properties文件
2009-11-29 17:44 1391java 框架基础 ------------------- ... -
for java beginner 14 ArrayList HashSet HashCode(中)
2009-11-29 13:24 1153java 反射 数组的反射 ArrayList HashSe ... -
for java beginner13java 反射 数组的反射(上)其实是讲ArrayList HashSet HashCode
2009-11-29 12:35 940java 反射 数组的反射(上 ... -
for java beginner12数组的反射的应用
2009-11-29 10:04 1046java 反射 数组的反射 数组也是一种类型,当然可以反射 ... -
for java beginner11 java 反射 Method类
2009-11-29 08:30 1305java 反射 Method类 str1.charAt() ... -
for java beginner10 java 反射 Field类
2009-11-29 07:17 3565java 反射 Field类 -------用到一个bea ... -
for java beginner 9 java反射的概念和Constructor 类
2009-11-29 07:13 1416java 反射 的概念 和 Constructor 类 反 ... -
for java beginner 8 java 反射的基础基础Class的理解
2009-11-29 07:09 1041java 反射 的基础基础 Class的理解 反射 在 1 ...
相关推荐
Java 1.5 引入了一种新的元编程机制——注解(Annotation),极大地增强了代码的可读性和可维护性。注解是一种在代码中添加元数据的方式,它允许程序员在源代码上添加一些信息,这些信息可以被编译器或运行时环境...
标题 "JDK1.5的annotation" 指的是Java Development Kit 1.5引入的注解(Annotation)特性。注解是一种元数据,它提供了在代码中嵌入信息的方式,这些信息可以被编译器或Java虚拟机(JVM)在编译时或运行时读取和...
3. **自动装箱与拆箱**:Java 1.5开始支持基本类型的包装器类(如Integer, Boolean等)与基本类型之间的自动转换。这使得处理包装器对象和基本类型变得更加方便。 4. **变量赋值增强(Enhanced for loop)**:也...
Java JDK 1.5,全称为Java Development Kit 1.5,是Oracle公司(原Sun Microsystems)发布的Java编程语言的一个重要版本。这个版本在2004年发布,引入了许多新特性和改进,极大地提升了Java的开发效率和性能。下面...
9. **内省增强**:Java 1.5增强了反射API,使得在运行时获取和修改类、方法和字段的信息更加容易。 10. **并发改进**:Java 5引入了新的并发工具类,如`java.util.concurrent`包,包含`Executor`框架、`Semaphore`...
6. **注解(Annotation)**:注解为元数据提供了支持,用于提供编译器或运行时系统的信息,例如用于编译时检查、代码生成或运行时反射。 JDK 1.6(2006年发布)在1.5的基础上继续优化和添加新功能,其中一些重要的...
在Java 1.5版本中引入了一个重要的新特性——**Annotation**(注解)。Annotation本质上是一种元数据(即关于数据的数据),它提供了一种机制来关联程序元素(如类、方法、属性等)与其附加信息。 在早期的Java开发...
本文将重点介绍Java 1.5及以后版本中内置的三种常用注解类型及其应用方式,并进一步探讨如何自定义Annotation。 **1.1 @Override 注解** - **定义**:`@Override`注解用于标记重写(override)父类的方法。它只...
### Java自定义注解Annotation的使用 #### 1. 前言 自从JDK 1.5引入了注解这一特性以来,它已经成为Java开发中的一个重要组成部分。注解最初是为了推动EJB 3.0的普及和发展而设计的,其目的是减少配置文件的使用,...
本文主要介绍了基于Annotation的Java单元测试框架,讨论了Annotation在Java EE中的应用、反射技术的使用和JUnit单元测试框架的结合,建立了一个自动化单元测试框架结构。 一、Annotation概述 Annotation是Java 5中...
**Annotation** 在 Java 1.5+ 版本中被引入,作为一种与程序元素关联任何信息或元数据(metadata)的途径。从某种程度上看,Annotation 类似于修饰符,可以应用于各种 Java 程序元素,包括包、类型、构造方法、方法...
### Java实战篇:设计自己的Annotation #### 一、概述 在Java编程中,注解(Annotation)作为一种元数据,能够为代码提供额外的信息,并且在编译时或运行时可以被处理工具读取和利用。自Java 1.5版本引入以来,...
Annotation(注解)是Java编程语言的一个重要特性,自JDK 1.5引入以来,逐渐成为编写可维护和可扩展代码的关键工具。注解提供了一种方式,使得程序员可以在代码中添加元数据(metadata),这些数据不直接影响代码...
Java注解(Annotation)是Java语言中的一个重要特性,自Java 1.5版本引入以来,它在软件开发中扮演了不可或缺的角色。注解是一种元数据,它可以附加到源代码的不同元素上,如类、方法、变量等,提供了额外的信息,...
在Java 1.5引入的反射API使得开发者可以在编译期未知的情况下,动态地获取类的信息并执行相关操作。以下将详细介绍反射的基本概念、应用场景以及相关的API。 **反射基本概念** 1. **Introspection (内省)**:这是...