车家互联 小程序在智能汽车时代的创新与发展潜力
725
2022-10-28
注解的那些事儿(三)| 注解的使用
简单明了介绍如何使用注解,以及一些特殊的情况。
学会了如何定义自定义注解,那还要会用起来才行。
其实自定义注解使用也非常简单,像我们上篇文章定义的一个 Sweet 注解。
public @interface Sweet { String sweetLevel();}
要使用它只需要像下面这样就可以了。
public class SweetDemo { @Sweet (sweetLevel="Level.05") public void sweetWithDoc() { System.out.printf("sweet With Doc."); } }
但是有时候注解会有些特殊用法,我们需要了解一下。
第一种情况:如果没有任何注解属性,那么可以省略注解的中括号。
在上面的例子中,如果 @Sweet 注解没有任何属性。
public @interface Sweet {}
那么我们使用的时候就可以直接写上直接名称,不需要中括号。
public class SweetDemo { @Sweet public void sweetWithDoc() { System.out.printf("sweet With Doc."); } }
第二种情况:注解属性有默认值,可以不进行赋值操作。
在上面的 SweetDemo 中会发现我们在使用 @Sweet 注解的时候,手动给 sweetLevel 属性赋值。如果没有赋值,那么会报错。
例如我们重新定义 Sweet,让你有一个「Level.03」的默认值。
public @interface Sweet { String sweetLevel();}
那么在使用的时候就可以直接这样使用:
public class SweetDemo { @Sweet public void sweetWithDoc() { System.out.printf("sweet With Doc."); } }
这个时候,sweetLevel 属性就是默认值:Level.03。
第三种情况:注解内有且仅有一个名字为 value 的属性时,应用这个注解时可以直接接属性值填写到括号内。
例如上面的 @Sweet 注解改写成这样:
public @interface Sweet { String value();}
那么在使用的时候,我们本来应该这样用:
public class SweetDemo { @Sweet(value = "Level.03") public void sweetWithDoc() { System.out.printf("sweet With Doc."); } }
public class SweetDemo { @Sweet("Level.03") public void sweetWithDoc() { System.out.printf("sweet With Doc."); } }
总结
下面就来总结一下,其实自定义注解使用不复杂,但有下面三种情况比较特殊:
注解没有任何注解属性,那么可以省略注解的中括号。注解的注解属性有默认值,可以不进行赋值操作。注解内有且仅有一个名字为 value 的属性时,应用这个注解时可以直接接属性值填写到括号内。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~