提示三十九
2022-08-02 本文已影响0人
飞絮搅青冥
提示三十九:注解优于命名模式。
文章首先指出了使用命名模式的几个问题:
- 拼写错误导致失败,但不会提示。
- 无法确保它们仅用于适当的程序元素。
- 没有提供将参数值与程序元素相关联的好的方法。
JUnit4就是用了注解来解决这些问题。@interface
用来定义一个自定义注解,注解中的方法即为注解的元素,元素中不能包含参数,返回值只能为简单数据类型、String、Class、emnus、注释 和这些类型的数组。注解是一种特殊的修饰符,在其他修饰符(例如,public、static 或者 final 等)使用地方都可以使用注解。按照惯例,注解应该放在其他修饰符的前面。注解的声明用@符号后面跟上这个注解类型的名字,再后面加上括号,括号中列出这个注释中元素的key-value对,其中,元素名为key ,值必须是常量。如果注解中只有一个元素且元素名字为 value,那么在使用这个注解的时候,元素的名字和等号都可以省略。
当我们使用@interface定义一个注解时,需要确定这个注解的生命周期和需要用到哪些地方。这就用到了注解的注解--元注解,其中@Retention 用来确定这个注解的生命周期;@Target 指定注解使用的目标范围(类、方法、字段等)。
注解不会改变注解代码的语义。从 Java 8 开始可以使用 @Repeatable 元注解来表示多值注解。但是当重复使用一个注解之后,就会变成@Repeatable
注解里面配置的那个注解了。
当可以使用注解代替时,没有理由使用命名模式。除了特定的开发者(toolsmith)之外,大多数程序员都不需要定义注解类型。 但所有程序员都应该使用Java提供的预定义注解类型。我们平时开发确实不太需要用到注解,但是Java预定义的注解还是非常有必要的,自定义注解有时候也是非常有用的,所以我自己还是要多尝试,多了解,这样需要使用它的时候就才能想到这种方法。