java注解的类型知识点总结

作者:小妮浅浅 时间:2022-11-04 00:26:02 

提到java里的注解,和我们平时的注释还是有很大的区别,主要是作为java特性来使用的,跟我们常见的类是同一个使用的层面。关于java注解的类型,我们可以简单分为:自定义注解和元注解。其中元注解里的JDK又有5中注解的类型,下面一起来看看具体的内容讲解吧。

1、自定义注解

定义注解使用关键字: @interface


// #1 定义注解
public @interface MyAnno1{
}

2、元注解

用于修饰注解的注解。

JDK提供的5种元注解:

(1)@Target:用于确定被修饰的自定义注解使用位置

(2)@Retention:用于确定被修饰的自定义注解生命周期

(3)@Inherited:表示该注解具有继承性(了解)

(4)@Documented:使用 javadoc 生成 api 文档时,是否包含此注解 (了解)

(5)@Repeatable:注解在同一个位置,只能出现一次。使用@Repeatable,可以在同一个地方使用多次了。


package util;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import anno.JDBCConfig;

@JDBCConfig(ip = "127.0.0.1", database = "test", encoding = "UTF-8", loginName = "root", password = "admin")
@JDBCConfig(ip = "127.0.0.1", database = "test", encoding = "UTF-8", loginName = "root", password = "admin")

public class DBUtil {
static {
  try {
    Class.forName("com.mysql.jdbc.Driver");
  } catch (ClassNotFoundException e) {
    e.printStackTrace();
  }
}

public static Connection getConnection() throws SQLException, NoSuchMethodException, SecurityException {
  JDBCConfig config = DBUtil.class.getAnnotation(JDBCConfig.class);
  System.out.println(config);

String ip = config.ip();
  int port = config.port();
  String database = config.database();
  String encoding = config.encoding();
  String loginName = config.loginName();
  String password = config.password();

String url = String.format("jdbc:mysql://%s:%d/%s?characterEncoding=%s", ip, port, database, encoding);
  return DriverManager.getConnection(url, loginName, password);
}

public static void main(String[] args) throws NoSuchMethodException, SecurityException, SQLException {
  Connection c = getConnection();
  System.out.println(c);
}

}

知识点扩展:

理解Java注解

实际上Java注解与普通修饰符(public、static、void等)的使用方式并没有多大区别,下面的例子是常见的注解:


public class AnnotationDemo {
//@Test注解修饰方法A
@Test
public static void A(){
 System.out.println("Test.....");
}

//一个方法上可以拥有多个不同的注解
@Deprecated
@SuppressWarnings("uncheck")
public static void B(){

}
}

通过在方法上使用@Test注解后,在运行该方法时,测试框架会自动识别该方法并单独调用,@Test实际上是一种标记注解,起标记作用,运行时告诉测试框架该方法为测试方法。而对于@Deprecated和@SuppressWarnings(“uncheck”),则是Java本身内置的注解,在代码中,可以经常看见它们,但这并不是一件好事,毕竟当方法或是类上面有@Deprecated注解时,说明该方法或是类都已经过期不建议再用,@SuppressWarnings 则表示忽略指定警告,比如@SuppressWarnings(“uncheck”),这就是注解的最简单的使用方式

来源:https://www.py.cn/java/jichu/27207.html

标签:java,注解类型
0
投稿

猜你喜欢

  • 深入理解spring事务

    2023-10-13 14:51:36
  • Spring boot外部配置(配置中心化)详解

    2022-07-11 23:13:26
  • Spring Boot 配置和使用多线程池的实现

    2022-09-04 19:53:02
  • 解决mybatis批量更新出现SQL报错问题

    2023-11-29 04:12:47
  • C# SQlite操作方法小结

    2021-10-01 15:56:09
  • Java中方法的使用、重载与递归的详细介绍

    2022-03-02 02:50:05
  • Java实现删除排序链表中的重复元素的方法

    2022-11-28 08:27:22
  • Java中final变量使用总结

    2022-09-29 08:32:00
  • C++基础概念讲述

    2022-10-31 16:56:05
  • Java动态显示文件上传进度实现代码

    2022-09-09 20:18:17
  • 详解Springboot自定义异常处理

    2021-11-04 17:15:12
  • Java中后台线程实例解析

    2022-01-05 06:45:08
  • java8 实现提取集合对象的每个属性

    2023-10-17 19:37:27
  • Android Map新用法:MapFragment应用介绍

    2023-02-11 20:50:47
  • Unity解析gif动态图操作

    2022-05-27 08:16:43
  • 基于springboot的flowable工作流实战流程分析

    2022-11-28 08:27:09
  • SpringBoot实现Excel文件批量上传导入数据库

    2023-11-29 11:13:44
  • C++中auto_ptr智能指针的用法详解

    2023-05-21 02:14:05
  • Android编程基于Contacts读取联系人的方法(附demo源码)

    2023-11-22 06:05:39
  • 基于Luhn算法的银行卡校验规则

    2022-06-05 00:56:15
  • asp之家 软件编程 m.aspxhome.com