黑马程序员技术交流社区
标题:
张老师基础加强视频 35_为注解增加各种属性的问题<已解决>
[打印本页]
作者:
付信榕
时间:
2012-6-8 22:07
标题:
张老师基础加强视频 35_为注解增加各种属性的问题<已解决>
本帖最后由 付信榕 于 2012-6-13 10:29 编辑
package it.cast.da2y;
//自定义注解ItcastAnnotaton
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import java.lang.annotation.ElementType;
@Retention(RetentionPolicy.RUNTIME)//元注解,为注解ItcastAnnotation作解释。表示该注解保留的的阶段是运行期
@Target({ElementType.METHOD,ElementType.TYPE})//元注解,
表示
ItcastAnnotation
作用的目标可以是方法上,也可以是
TYPE
上。
public @interface ItcastAnnotaton {
String color();//String color();default "blue";
String value();//特殊,当仅是此需设置值时(原value=“abc”),可省略为(“abc”)
int[] arrrayAttr()default{3,4,4};//数组成员
}
注解ItcastAnnotaton 的应用
@ItcastAnnotaton(color= "red",value="abc",arrrayAttr=1)//
作用在类上,打印结果为red
public class AnnotationTest1 {
/**
* @param args
*/
//@ItcastAnnotaton(color= "red",value="abc",arrrayAttr=1)
//作用在方法上时,就无打印结果,注解 ItcastAnnotaton的作用目标不是类和方法上的吗?为什么在这里又不行呢???求解。
public static void main(String[] args)throws Exception {
// TODO Auto-generated method stub
if(AnnotationTest1.class.isAnnotationPresent(ItcastAnnotaton.class)){
ItcastAnnotaton annotation = (ItcastAnnotaton) AnnotationTest1.class.getAnnotation(ItcastAnnotaton.class);
System.out.println(annotation.color());
}
}
}
作者:
陈超
时间:
2012-6-9 17:45
因为你获取的是作用在类上的注解,而没有获取作用在方法上的注解。
获取作用在方法上的注解:
xxx注解 注解引用= 类上某个方法对应的Method对象.getAnnotation(xxx注解.class);
作者:
付信榕
时间:
2012-6-9 19:24
陈超 发表于 2012-6-9 17:45
因为你获取的是作用在类上的注解,而没有获取作用在方法上的注解。
获取作用在方法上的注解:
xxx注解 注解 ...
明白了,谢谢
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2