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

    学习目的
    方便看懂被人的代码,尤其是框架
    让编码更简洁,代码更加清晰

    Java提供了一种原程序中的元素关联任何信息和任何元数据的途径和方法

    Java中常见注解
    JDK自带注解
    @Override : 表示覆盖/实现父类的方法
    @Deprecated : 表示方法已经过时了
    @SuppressWarning("某种警告") : 忽略警告;例如 @SuppressWarning("deprecated")
    Spring中注解
    @AutoWired @Service @Repository @Compent ......
    Mybatis中注解
    @InsertProvider @UpdateProvider @Options ......

    Java注解的分类
    按照运行机制分
    源码注解 : 源码里有,.class文件中没有
    编译注解 : .class文件中存在,运行时没有
    运行注解 : 运行是起作用,如 @AutoWired
    按来源分
    JDK自带注解
    第三方注解
    自定义注解

    自定义注解的语法
    @Target({ElementType.METHOD, ElementType.TYPE})
    @Retention(RetentionPolicy.RUNTIME)
    @Inherited
    @Documented
    public @interface Description {

    String desc();

    String author();

    int age() default 18;

    }

    说明1: 使用 @interface 关键字定义注解
    说明2: 成员以无参无异常方式声明
    说明3: 可以用 default 为成员指定一个默认值
    说明4: 成员类型是受限制的,只能是 原始类型 及 String/Class/Annotation/Enumeration
    说明5: 如果注解只有一个成员,则成员名必须是 value() ,在使用时可以忽略成员名和赋值号(=)
    说明6: 注解类可以没有成员,没有成员的注解称为标识注解

    @Target({ElementType.METHOD, ElementType.TYPE})
    @Retention(RetentionPolicy.RUNTIME)
    @Inherited
    @Documented
    这几个是元注解,其各自的作用:
    @Target 定义注解作用域
    ElementType.METHOD : 方法声明
    ElementType.TYPE : 类和接口
    ElementType.CONSTRUCTOR : 构造方法声明
    ElementType.FIELD : 字段声明
    ElementType.LOCAL_VARIABLE : 局部变量声明
    ElementType.PACKAGE : 包声明
    ElementType.PARAMETER : 参数声明
    @Retention 生命周期
    RetentionPolicy.SOURCE : 源码级别
    RetentionPolicy.CLASS : 编译级别
    RetentionPolicy.RUNTIME : 运行级别,运行时存在,可以通过反射读取
    @Inherited 允许子类继承,只会继承类的注解
    @Documented 生成javadoc时会包含注解

    使用自定义注解
    语法:
    @<注解名>(<成员名1>=<成员值1>, <成员名2>=<成员值2>, ......)

    解析注解
    概念 : 通过反射获取类、函数或者成员上的运行时注解信息,从而实现动态控制程序运行的逻辑
    需求 :
    1. 用户表: 用户ID、用户名、昵称、年龄、性别、所在城市、邮箱、手机号
    2. 方便的对每个字段或字段组合条件进行检索,并打印出sql
    3. 使用方式要足够简单

    代码github地址: https://github.com/aston2016/AstonProject/tree/master/annotation

  • 相关阅读:
    网络七层
    微信小程序开发工具 常用快捷键
    BZOJ 1026 windy数 (数位DP)
    BZOJ 1026 windy数 (数位DP)
    CodeForces 55D Beautiful numbers (SPOJ JZPEXT 数位DP)
    CodeForces 55D Beautiful numbers (SPOJ JZPEXT 数位DP)
    HDU 3709 Balanced Number (数位DP)
    HDU 3709 Balanced Number (数位DP)
    UVA 11361 Investigating Div-Sum Property (数位DP)
    UVA 11361 Investigating Div-Sum Property (数位DP)
  • 原文地址:https://www.cnblogs.com/aston/p/9404131.html
Copyright © 2011-2022 走看看