V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
sun1992
V2EX  ›  程序员

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

  •  
  •   sun1992 · 2019-01-03 16:46:25 +08:00 · 3953 次点击
    这是一个创建于 2180 天前的主题,其中的信息可能已经有所发展或是发生改变。

    比如注解 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;
    }
    
    6 条回复    2019-01-04 09:51:39 +08:00
    werty
        1
    werty  
       2019-01-03 17:15:50 +08:00
    Java 注解必须要有 value 吧, 但 value 又不能体现出值的实际含义, 所以就互相别名呗
    jakes
        2
    jakes  
       2019-01-03 17:24:05 +08:00
    @Anno("test") 相当于 @Anno(value="test")

    互为别名一般是用于将 attribute 设为注解的默认属性吧?这是我的理解,看看楼下怎么说。
    sun1992
        3
    sun1992  
    OP
       2019-01-03 20:15:23 +08:00
    @werty “ Java 注解必须要有 value ” ,没有这个说法吧,没有 value 也是可以正常运行的
    sun1992
        4
    sun1992  
    OP
       2019-01-03 20:18:25 +08:00
    @jakes 嗯 你这个有一定道理,简写的确方便一点。还有其他好处吗?
    chendy
        5
    chendy  
       2019-01-03 21:20:50 +08:00
    都已经翻到源码了,那就往上看一眼,注释里说的很清楚了…
    werty
        6
    werty  
       2019-01-04 09:51:39 +08:00
    @sun1992 我没说清楚, 使用 @TestAnnotation("xxxx") 这种方式的时候, 必须要有名为 value 的 method, 所以俩互为别名, 一个负责方便一个负责体现实际含义
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   950 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 22:51 · PVG 06:51 · LAX 14:51 · JFK 17:51
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.