zoukankan      html  css  js  c++  java
  • 了解java注解

    类似于下面这样的就是注解

    注解可以在类上,成员变量上,方法上等

    假如有2个注解是这样的:(其中的Author和Date)

    那么这2个注解的定义就是这样的:

    Author注解:

    Date注解:

    可以看到注解的定义和接口的定义比较类似,而Author注解中有name属性,所以使用Author的时候比较要填写name属性值

    如果想要注解有默认值,可以这样:

    这样使用Author注解时age属性值就可以不用填写,一个注解有多个属性值时使用时用逗号隔开

    如果注解中只定义了1个属性且名称为value,那么使用时名称可省略,像这样:

    注解也是一种类型,既然可以定义,那么也是可以获取的,像这样:

    运行你会发现是会报错的,难道是代码错了,其实并不是,是注解的保留策略没有更改

    再就要谈到元注解了,元注解就是注解类型上的注解,先看一下注解@Override的元注解

    其中@Target和@Retention就是元注解,其中@Target表示注解的应用范围,@Retention表示注解的保留策略

    这两个注解可以根据java.lang.annotation接口去查阅

    java.lang.annotation.RetentionPolicy

    所以只需要将@Retention的值设置为RUNTIME就可以读取注解了,它的默认值是CLASS

    java.lang.annotation.ElementType

    @Target的默认值应该是这所有的(这个我没有尝试啊)

    看到这里就应该知道怎么解决刚才报错的问题了

    只需要在自定义注解上加上元注解@Retention就行了,当然,也可以设置一下注解@Target,就像这样:

      Author注解:

      Date注解:

    再运行就可以得到结果了

    还有刚才提到的关于注解的继承,也是使用元注解:@Inherited

    注解默认不继承,不过这继承也是有限制的

    @Inherited   //表示注解是否能继承, 只能作用在类上, 只对类的继承有效, 对实现接口无效

    注解可能用到的地方不多,不过了解注解可以让我们更理解一些东西。比较springmvc中的注解等

    
    
    
    
    
    唯一激励你前行的是你的心
  • 相关阅读:
    Vue路由机制
    谷歌浏览器打不开应用商店的解决方法
    Vue报错——Component template should contain exactly one root element. If you are using vif on multiple elements, use velseif to chain them instead.
    Vue.js学习之——安装
    Vue使用axios无法读取data的解决办法
    关于localstorage存储JSON对象的问题
    2013年整体计划
    个人喜欢的警语收集
    Linux防火墙的关闭和开启
    Flex修改title 转载
  • 原文地址:https://www.cnblogs.com/pdzbokey/p/6117319.html
Copyright © 2011-2022 走看看