提到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”),这就是注解的最简单的使用方式

到此这篇关于java注解的类型知识点总结的文章就介绍到这了,更多相关java注解的类型有哪些内容请搜索www.887551.com以前的文章或继续浏览下面的相关文章希望大家以后多多支持www.887551.com!