为了账号安全,请及时绑定邮箱和手机立即绑定

全面解析Java注解

难度初级
时长 1小时 7分
学习人数
综合评分9.43
519人评价 查看评价
9.7 内容实用
9.4 简洁易懂
9.2 逻辑清晰
  • @Deprecated 用于修饰已经过时的方法; @suppressWarings("deprecation") 用于通知java编译器忽略特定的编译警告。 注解分类: 一:按运行机制 1、源码注解:只在源码中存在,编译时不存在 2、编译时注解:注解在源码和.class编译时都存在 3、运行时注解:在运行阶段存在起作用 二:按照来源来分: 1、来自JDK的注解 2、来自第三方的注解 3、自定义注解 元注解:给注解进行注解 自定义注解: 1、使用@interface关键字定义注解: (1)成员以无参数无异常的的方式声明 (2)可以用default为成员制定一个默认值 (3)成员类型是受限制的,合法的类型包含原始基本类型及String、Class、Annotation、Enumeration (4)如果注解只有一个成员,则成员名必须取为value();在使用时可以忽略成员名和赋值号(=) (5)注解类可以没有成员,没有成员的注解成为标识注解 自定义注解的元注解: 1,@Target---作用域(constructor(构造方法声明),field(字段声明),local_variable(局部变量声明),method(方法声明),package(包声明),parameter(参数声明),type(类,接口声明)) 2,@Retention---生命周期(source:只在源码显示,编译时会丢弃。class:编译时会记录到class中,运行时忽略。runtime:运行时存在,可以通过反射读取) 用@Retention(RetentionPolicy.CLASS)修饰的注解,表示注解的信息被保留在class文件(字节码文件)中当程序编译时,但不会被虚拟机读取在运行的时候; 用@Retention(RetentionPolicy.SOURCE )修饰的注解,表示注解的信息会被编译器抛弃,不会留在class文件中,注解的信息只会留在源文件中; 用@Retention(RetentionPolicy.RUNTIME )修饰的注解,表示注解的信息被保留在class文件(字节码文件)中当程序编译时,会被虚拟机保留在运行时, 所以他们可以用反射的方式读取。 3,Inherited---标识注解(允许子类继承) 4,Documented---生成Javadoc
    查看全部
    2 采集 收起 来源:解析注解

    2018-03-22

  • 项目实战中的注解列名没用上。是直接了FiledName。这有问题。
    查看全部
    2 采集 收起 来源:课程总结

    2015-08-02

  • 语句的列名应该从注解的列名取
    查看全部
    2 采集 收起 来源:课程总结

    2015-08-02

  • 加油
    查看全部
    2 采集 收起 来源:Java注解概述

    2015-07-22

  • 一种学习方式,为什么?有什么用?学完能做什么?
    查看全部
    2 采集 收起 来源:Java注解概述

    2015-07-22

  • 解析注解概念:通过反射获取类、函数或成员上的运行时注解信息,从而实现动态控制程序运行的逻辑。

    步骤1:使用类加载器加载类

    Class c=Class.forName("com.ann.test.Child");

    步骤2:找到类上面的注解

    isAnnotationPresent(类类型):Class对象的方法,判断当前类类型是否存在某个类类型的注解,返回类型为boolean。

    boolean isExist=c.isAnnotationPresent(Description.class);

    步骤3:获取类上自定义注解实例,需要强制类型转换。

    Description d=(Description)c.getAnnotation(Description.class);

    https://img1.sycdn.imooc.com//5d1720c30001310b07580515.jpg

    步骤4:获取方法上的注解,首先,遍历所有方法,通过方法对象的isAnnotation查看是否有自定义注解,如果存在则输出方法的自定义注解的信息。


    https://img1.sycdn.imooc.com//5d1725750001e43e07010326.jpg

    第二种解析方法:获取这个方法的所有注解,Annotation [] as=m.getAnnotations();然后遍历该注解,如果遍历的注解是Description类型,则把遍历的注解强转为Description类型,并进行输出value()信息。

    https://img1.sycdn.imooc.com//5d17262d0001c9b905820335.jpg


    @Inherited:当自定义注解上使用了该注解,如果在父类上标识该注解,解析一个子类,子类也可以获取该注解的信息。


    查看全部
    2 采集 收起 来源:解析注解

    2019-07-01

  • 一、为什么要学习注解?学习注解有什么好处?学完能做什么? 1、能够读懂别人写的代码,别别是框架相关的代码 2、让编程更加简洁,代码更加清晰。 JDK自带注解(JDK1.5以后版本能用) 1、 @Override //覆盖 2、 @Deprecated //已经过时 3、 @SuppressWarnings("deprecation") //压制警告(过时) 注解分类 按运行机制分 1、源码注解 2、编译时注解 3、运行时注解 按照来源划分 1、来自JDK的注解 2、来自第三方的注解 3、自定义注解 元注解 自定义注解 成员类型是受限的,合法的类型包括原始类型及String,Calss,Anootation,Enumreation 如果注解已有一个成员,则成员名必须取名为Vaue(),在使用的时可以忽略成员名和赋值号(=) 注解类可以没有成员,没有成员的注解成为表示注解 public @interface javen{ String name(); String author(); int age() default 19; } 元注解 @Target({ElementType.CONSTRUCTOR,ElementType.FIELD,ElementType.METHOD}) // Target 注解的作用域 CONSTRUCTOR 构造方法声明,FIELD 字段声明,LOCAL_VARIABLE 局部变量声明 ,METHOD 方法声明,PACKAGE 包声明,PARAMETER 参数声明,TYPE 类接口。 @Retention(RetentionPolicy.RUNTIME) //Retention 生命周期 SOURCE 只在源码显示,编译时会丢弃,CLASS 编译时会记录到class中,运行时忽略,RUNTIME 运行时存在,可以通过反射读取。 @Inherited //Inherited 允许子类继承 @Documented 生成javadoc的时候包含注解
    查看全部
  • 1学习注解的好处: 读懂别人代码,特别是框架代码,让编程更加简洁,代码更清晰,让人高看一眼。 简单讲就是,提高阅读代码的能力,提高编写代码的能力,提高所要工资的筹码,显得牛逼有安全感。 2、注解是啥玩意: 注解是一种这样的东西,标志是一个@符号,他能够关联数据和其他的信息,比较正规一点的描述是: 注解是Java提供的一种 源程序中的元素关联任何信息和任何元数据的 途径和方法。 3、java注解分类: 按来源分:java自带注解、第三方注解、自定义注解 按生命周期分:源码注解、编译时注解、运行时注解 4、自定义注解的结构: 元注解(用来注解注解的)、@接口定义、无参无异常的成员方法的定义(成员类型受限:基本数据类型、String、枚举)
    查看全部
    2 采集 收起 来源:Java注解概述

    2017-11-01

  • Spring:@Autowired @Service @Repository @Autowired:可以对成员变量、方法和构造函数进行标注,来完成自动装配的工作。通过 @Autowired的使用来消除 set ,get方法。 用法: public class UserManagerImpl implements UserManager { @Autowired private UserDao userDao; } @Service:用于标注业务层组件。定义某个类为一个bean,则在这个类的类名前一行使用@Service("XXX"),就相当于讲这个类定义为一个bean,bean名称为XXX。而无需去xml文件内去配置。 @Repository:用于标注数据访问组件,即DAO组件。
    查看全部
    2 采集 收起 来源:Java第三方注解

    2018-03-22

  • java自定义注解 1、自定义注解的语法要求 a、使用@interface关键字定义注解 b、成员以无参无异常方式声明 c、可以用default为成员指定一个默认值 d、如果注解只有一个成员,则成员名必须取名value(),在使用时可以忽略成员名和赋值 号(=); e、成员类型是受限的,合法的类型包括原始类型String,Class,Annotation,Enumeration f、注解类可以没有成员,没有成员的注解称为标识注解 2、元注解 @Documented 生成javadoc时包含注解 @Inherited 允许子类继承 @Retention(RetentionPolicy.RUNTIME):声明周期 [SOURCE只在源码显示,编译时会丢弃; CLASS编译时会记录到class中,运行时忽略; RUNTIME运行时存在,可以通过反射读取] @Target({ElementType.METHOD}) [CONSTRUCTOR构造方法声明; FIELD字段声明; LOCAL_VARIABLE局部变量声明; METHOD方法声明; PACKAGE包声明; PARAMETER参数声明; RYPE类接口]
    查看全部
    2 采集 收起 来源:Java自定义注解

    2017-10-22

  • 源码:http://blog.csdn.net/zen99t/article/details/50351575
    查看全部
  • 1)自定义注解的语法要求 @Target({ElementType.METHOD,ElementType.TYPE}) @Retention(RetentionPolicy.RUNTIME)//[rɪˈtɛnʃən]保留 @Inherited @Documented public @interface Description{ //使用@intreface关键字定义注解 String desc(); //成员以无参无异常方式声明 String author(); int age() default 18;//可以用default为成员指定一个默认值 //1.成员类型是受限的,合法的类型包括原始类型以及String,Class,Annotation,Enumeration //[ɪˌnju:mə'reɪʃn] n.列举;详表Annotation[ænə'teɪʃn]注释 //2.如果注解只有一个成员,则成员名必须取名为value(),在使用时可以忽略成员名和赋值号(=) //3.注解类可以没有成员,即为标识注解。 } 2)注解的注解(元注解) @Target({ElementType.METHOD,ElementType.TYPE}) //注解的作用域 //注解的作用域列表 CONSTRUCTOR(构造函数声明) FIELD(字段声明) LOCAL_VARIABLE(局部变量声明) METHOD(方法声明) PACKGE(包声明) PARAMETER(参数声明) TYPE(类接口) @Retention(RetentionPolicy.RUNTIME)//生命周期 //SOURCE:只在源代码显示,编译时会丢失。CLASS:编译时会记录到class中,运行时忽略。RUNTIME:运行时存在,可通过反射读取 @Inherited//标示性的元注解,表示允许子类继承 @Documented//生成Javadoc时会包含注解信息 3)使用自定义注解 使用注解的语法: @<注解名>(<成员名1>=<成员值1>,<成员名2>=<成员值2>,...) @Description(desc ="I am eyeColor",author="C boy",age=18) public String eyeColor(){ return "red"; }
    查看全部
  • 代码后续 评论区大神提供的源码:http://blog.csdn.net/zen99t/article/details/50351575
    查看全部
  • JDK内置系统注解: @Override 用于修饰此方法覆盖了父类的方法; @Deprecated 用于修饰已经过时的方法; @suppressWarings("deprecation") 用于通知java编译器忽略特定的编译警告。
    查看全部
    1 采集 收起 来源:JDK中的注解

    2018-03-22

  • 【温馨提示:JavaSE/EE、SSH/SSM、Hybrid APP、JQ/JS/CSS3/H5等编程爱好者关注我,加我慕课好友,互相学习,共同进步!】
    查看全部

举报

0/150
提交
取消
课程须知
小伙伴们注意啦!学习本课程前需要具备Java基础,理解面向对象思想,熟悉Java反射。如果能了解spring、hibernate等框架就更好啦!
老师告诉你能学到什么?
1、为什么使用注解 2、理解注解的基本概念 3、能够自定义注解 4、理解注解在实际项目中的应用

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!