Spring 中互为别名的作用是啥?@AliasFor

2019-01-03 16:46:25 +08:00
 sun1992

比如注解 AliasFor 中 value 和 attribute 互为别名,这样设置的好处是啥?真的有更方便使用吗?

因为觉得存在即合理,所以想知道这样做的意义是啥。希望各位大佬能答疑解惑~

@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.METHOD})
@Documented
public @interface AliasFor {
    @AliasFor("attribute")
    String value() default "";

    @AliasFor("value")
    String attribute() default "";

    Class<? extends Annotation> annotation() default Annotation.class;
}
3747 次点击
所在节点    程序员
6 条回复
werty
2019-01-03 17:15:50 +08:00
Java 注解必须要有 value 吧, 但 value 又不能体现出值的实际含义, 所以就互相别名呗
jakes
2019-01-03 17:24:05 +08:00
@Anno("test") 相当于 @Anno(value="test")

互为别名一般是用于将 attribute 设为注解的默认属性吧?这是我的理解,看看楼下怎么说。
sun1992
2019-01-03 20:15:23 +08:00
@werty “ Java 注解必须要有 value ” ,没有这个说法吧,没有 value 也是可以正常运行的
sun1992
2019-01-03 20:18:25 +08:00
@jakes 嗯 你这个有一定道理,简写的确方便一点。还有其他好处吗?
chendy
2019-01-03 21:20:50 +08:00
都已经翻到源码了,那就往上看一眼,注释里说的很清楚了…
werty
2019-01-04 09:51:39 +08:00
@sun1992 我没说清楚, 使用 @TestAnnotation("xxxx") 这种方式的时候, 必须要有名为 value 的 method, 所以俩互为别名, 一个负责方便一个负责体现实际含义

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/523523

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX