Java之注解(初识+元注解+自定义)

简介: 注解Annotation(注释 注解)注释单行注释 //多行注释 /* */文档注释 /** */注解1.注解的写法 @XXX [(一些信息)]2.注解放置在哪里 类的上面 属性上面 方法上面 构造方法上面 参数前面3.注解的作用 1.用来充当注释的作用(仅仅是一个文字的说明) @Deprecated 2.用来做代码的检测(验证) @Override *3.可以携带一些信息(内容) 文件.properties .xml 注解4.Java中有一些人家写好的注解供我们使用 @Deprecated 用来说明方法

知识回顾

Class

Field    Method   Constructor   Package

IOC(控制反转)   DI(依赖注入)    

注解

Annotation(注释  注解)

注释

单行注释   //

多行注释   /*      */

文档注释   /**    */

注解

1.注解的写法

@XXX [(一些信息)]

2.注解放置在哪里

类的上面   属性上面  方法上面  构造方法上面  参数前面

3.注解的作用

1.用来充当注释的作用(仅仅是一个文字的说明)   @Deprecated

2.用来做代码的检测(验证) @Override

*3.可以携带一些信息(内容) 文件.properties  .xml   注解

4.Java中有一些人家写好的注解供我们使用

@Deprecated     用来说明方法是废弃的

@Override          用来做代码检测   检测此方法是否是一个重写

@SuppressWarnings(信息) String[]    {""}  

 如果数组内的元素只有一个长度  可以省略{}

 unused 变量定义后未被使用

 serial 类实现了序列化接口  不添加序列化ID号

 rawtypes 集合没有定义泛型

 deprecation   方法以废弃    

 *unchecked   出现了泛型的问题  可以不检测

 all 包含了以上所有(不推荐)

5.注解中可以携带信息  可以不携带

信息不能随意写   信息的类型只能是如下的类型

1.基本数据类型

2.String类型

3.枚举类型enum

4.注解类型@

5.数组类型[]   数组的内部需要是如上的四种类型

6.如何自己描述一个注解类型

1.通过@interface 定义一个新的注解类型

2.发现写法与接口非常相似(可以利用接口的特点来记忆注解)

 可以描述public static final的属性  比较少见

 可以描述public abstract的方法  方法要求返回值必须有  返回值类型是如上那些

3.我们自己定义的注解如果想要拿来使用

 光定义还不够  还需要做很多细致的说明(需要利用Java提供好的注解来说明)

 元注解(也是注解 不是拿来使用的 是用来说明注解)

 @Target 描述当前的这个注解可以放置在哪里写的

 @Retention  描述当前的这个注解存在什么作用域中的

  源代码文件--->编译--->字节码文件--->加载--->内存执行

  SOURCE        CLASS          RUNTIME

 @Inherited   描述当前这个注解是否能被子类对象继承

 @Document   描述这个注解是否能被文档所记录

4.自己使用自己描述的注解

 问题1.  在注解里面描述了一个方法   方法没有参数   方法是有返回值String[]

  使用注解的时候   让我们传递参数

  理解为  注解的方法做事   将我们传递给他的参数  搬运走了  给了别人

 问题2.  使用别人写好的注解不用写方法名  我们自己定义的方法必须写名字

  如果我们自己定义的注解  只有一个方法  方法名字叫value

  在使用的时候就可以省略方法名  

  如果传递的信息是一个数组   数组内只有一个元素  可以省略{}

  如果方法是两个以上  每一个方法必须写名字

如何解析注解内携带的信息(反射机制)

注解应用场景

Properties类的使用

 java.util

 继承HashTable

 使用方式像是map集合     value = getProperty(key)方法

 读取的信息是文件

 文件的后缀名.properties

 文件里面key=value

1.注解写法

 @XXXX (信息)

2.注解放置在哪里写

 类  方法  属性  构造  变量  参数(前面)

3.Java中定义好的注解

 @Deprecated 废弃的

 @Override 检测方法是否是重写

 @SuppressWarnings   去掉程序中的警告(尽量不要用  尽量通过编写代码去掉警告)

  unused   serial   rawtypes    deprecation   unchecked   all

4.如何自己定义注解

 描述一个自己的类    @interface

 类的上面通过元注解来描述

  @Target

  @Retention

  @Inherited

 想要携带一些信息   自定义注解类型  添加方法

  方法要求必须有返回值  返回值类型   基本  String  枚举  注解  数组

  方法的作用将我们传递的信息  搬走了  交给别人

5.注解的作用

 充当注释  仅仅是一个文字说明

 代码检测  @Override

携带信息

6.如何访问到注解对象

   如何获取里面的信息(需要反射机制)

7.注解在开发中应用的场景

目录
打赏
0
0
0
0
1
分享
相关文章
|
3月前
|
在 Java 中捕获和处理自定义异常的代码示例
本文提供了一个 Java 代码示例,展示了如何捕获和处理自定义异常。通过创建自定义异常类并使用 try-catch 语句,可以更灵活地处理程序中的错误情况。
120 1
Java注解的底层源码剖析与技术认识
Java注解(Annotation)是Java 5引入的一种新特性,它提供了一种在代码中添加元数据(Metadata)的方式。注解本身并不是代码的一部分,它们不会直接影响代码的执行,但可以在编译、类加载和运行时被读取和处理。注解为开发者提供了一种以非侵入性的方式为代码提供额外信息的手段,这些信息可以用于生成文档、编译时检查、运行时处理等。
90 7
|
3月前
|
在 Java 中,如何自定义`NumberFormatException`异常
在Java中,自定义`NumberFormatException`异常可以通过继承`IllegalArgumentException`类并重写其构造方法来实现。自定义异常类可以添加额外的错误信息或行为,以便更精确地处理特定的数字格式转换错误。
66 1
|
2月前
|
java实现从HDFS上下载文件及文件夹的功能,以流形式输出,便于用户自定义保存任何路径下
java实现从HDFS上下载文件及文件夹的功能,以流形式输出,便于用户自定义保存任何路径下
121 34
Java 中的注解(Annotations):代码中的 “元数据” 魔法
Java注解是代码中的“元数据”标签,不直接参与业务逻辑,但在编译或运行时提供重要信息。本文介绍了注解的基础语法、内置注解的应用场景,以及如何自定义注解和结合AOP技术实现方法执行日志记录,展示了注解在提升代码质量、简化开发流程和增强程序功能方面的强大作用。
163 5
[Java]自定义注解
本文介绍了Java中的四个元注解(@Target、@Retention、@Documented、@Inherited)及其使用方法,并详细讲解了自定义注解的定义和使用细节。文章还提到了Spring框架中的@AliasFor注解,通过示例帮助读者更好地理解和应用这些注解。文中强调了注解的生命周期、继承性和文档化特性,适合初学者和进阶开发者参考。
117 14
|
3月前
|
Java进阶之标准注解
Java进阶之标准注解
58 0
|
2天前
|
【Java并发】【线程池】带你从0-1入门线程池
欢迎来到我的技术博客!我是一名热爱编程的开发者,梦想是编写高端CRUD应用。2025年我正在沉淀中,博客更新速度加快,期待与你一起成长。 线程池是一种复用线程资源的机制,通过预先创建一定数量的线程并管理其生命周期,避免频繁创建/销毁线程带来的性能开销。它解决了线程创建成本高、资源耗尽风险、响应速度慢和任务执行缺乏管理等问题。
89 60
【Java并发】【线程池】带你从0-1入门线程池
Java社招面试题:一个线程运行时发生异常会怎样?
大家好,我是小米。今天分享一个经典的 Java 面试题:线程运行时发生异常,程序会怎样处理?此问题考察 Java 线程和异常处理机制的理解。线程发生异常,默认会导致线程终止,但可以通过 try-catch 捕获并处理,避免影响其他线程。未捕获的异常可通过 Thread.UncaughtExceptionHandler 处理。线程池中的异常会被自动处理,不影响任务执行。希望这篇文章能帮助你深入理解 Java 线程异常处理机制,为面试做好准备。如果你觉得有帮助,欢迎收藏、转发!
72 14
Java 面试必问!线程构造方法和静态块的执行线程到底是谁?
大家好,我是小米。今天聊聊Java多线程面试题:线程类的构造方法和静态块是由哪个线程调用的?构造方法由创建线程实例的主线程调用,静态块在类加载时由主线程调用。理解这些细节有助于掌握Java多线程机制。下期再见! 简介: 本文通过一个常见的Java多线程面试题,详细讲解了线程类的构造方法和静态块是由哪个线程调用的。构造方法由创建线程实例的主线程调用,静态块在类加载时由主线程调用。理解这些细节对掌握Java多线程编程至关重要。
48 13

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等