码迷,mamicode.com
首页 > 其他好文 > 详细

注解与枚举

时间:2019-02-18 14:41:43      阅读:219      评论:0      收藏:0      [点我收藏+]

标签:body   target   ann   不用   mep   targe   parameter   use   turn   

注解与枚举br/>Java除了注释外,还有注解,注解是不同于注释的,注解是可以在运行中获取对对象的信息的描述,而注释只是在源代码中可以,进行编译后就会剔除出去。
对于java的注解,有利于对对象的更详细的描述。
Java的注解有:对类的注解,对字段的注解,读方法的注解,对参数的注解等等。
对于注解的时机有:source源码级别的,就是这种注解在编译后会被丢弃,class编译级别的,就是这种注解在运行时会被丢弃,runtime运行级别的,就是这种注解可以在源码,编译和运行时都存在并且使用。
对于java注解的使用更好的例子就是目前最流行的ssm架构,ssh架构等等。接下来就看一看注解的编写与使用:
@Retention(RUNTIME)
@Target({ TYPE, FIELD, METHOD, PARAMETER, PACKAGE })
public @interface TestAbcAnno {
public String name() default "";
br/>}
@Retention中有source,runtime,class三个值,这三个值只能选择其中一个,不能选择多个。
@Target中有type表示类级别的注解,field表示字段级别的注解,method表示方法级别的注解,parameter表示参数级别的注解。除了这几种常用的外,还有:package,constructor,local_variable,annotation_type,type_parameter,type_use等等。
在注解中,使用default来设置默认值。使用注解:
Class cla = MainBodyCon.class;
TestAbcAnno ano = (TestAbcAnno) cla.getAnnotation(TestAbcAnno.class);获取类的注解
System.out.println(ano.name());
Field fie = cla.getDeclaredField("test");
TestAbcAnno f = fie.getAnnotation(TestAbcAnno.class); 获取字段的注解
System.out.println(f.name());
Method method = cla.getMethod("nameP", String.class);
TestAbcAnno m = method.getAnnotation(TestAbcAnno.class);获取方法的注解
System.out.println(m.name());
Parameter[] para = method.getParameters();
TestAbcAnno par = para[0].getAnnotation(TestAbcAnno.class);获取参数的注解
System.out.println(par.name());

对于枚举来说,就相对于简单了,枚举是对于某个事物有多种状态,使用枚举来列出来,使用时直接调用就可以了,不用亲手写出来,减少了重复写发生的错误,同时也将修改变得简单了和减少错误。
代码:
public enum StatusEnum {
one(1),two(2),three(3);
private int value;
private StatusEnum(int value) {
this.value = value;
}
public int value() {
return this.value;
}
}
枚举类中,结构方法必须是private类型的,如果是public是不行的。one(1), two(2), three(3);表示是各种枚举,括号中的值是各种枚举的值,枚举的调用:
StatusEnum.one.value();
StatusEnum.two.value();
StatusEnum.three.value();

注解与枚举

标签:body   target   ann   不用   mep   targe   parameter   use   turn   

原文地址:http://blog.51cto.com/xiaoshunzi/2351279

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!