`

使用JDK内建Annotation

阅读更多

1、Override 强制检查子类的方法重写

 

java 代码
  1. package com.test;   
  2.   
  3. public class OverrideTest {   
  4.        
  5.     @Override  
  6.     public String toString()   
  7.     {   
  8.         return "This is override";   
  9.     }   
  10.   
  11.     public static void main(String[] args) {   
  12.            
  13.         OverrideTest ot = new OverrideTest();   
  14.         System.out.println(ot.toString());   
  15.     }   
  16.   
  17. }  

 

如下如果不小心把toString()写成了ToString(),则会通不过编译

java 代码
  1. package com.test;   
  2.   
  3. public class OverrideTest {   
  4.        
  5.     @Override  
  6.     public String ToString()   
  7.     {   
  8.         return "This is override";   
  9.     }   
  10.   
  11.     public static void main(String[] args) {   
  12.            
  13.         OverrideTest ot = new OverrideTest();   
  14.         System.out.println(ot.toString());   
  15.     }   
  16.   
  17. }   

 

2、Deprecated 过时的,不建议被使用的

java 代码
  1. package com.test;   
  2.   
  3. import java.util.Date;   
  4.   
  5. public class DeprecatedTest {   
  6.   
  7.     @Deprecated  
  8.     public void doSomething()   
  9.     {   
  10.         System.out.println("do something");   
  11.     }   
  12.     public static void main(String[] args) {   
  13.         DeprecatedTest dt = new DeprecatedTest();   
  14.         dt.doSomething();   
  15.         Date date = new Date();   
  16.         date.toLocaleString();   
  17.     }   
  18.   
  19. }   

此时,第14行和第16行都会被划上线条,表示doSomething方法和toLocalString方法不建议被使用 。并且第16行前端有个警告符号。过时的或不建议被使用的方法被调用时是否出现警告,需要在IDE中设置:

window->preferences->java->compiler->Errors/Warnings->Deprecated and restricted API

将其中的两个复选框选中即可。

java 代码
  1. package com.test;   
  2.   
  3. public class SubDeprecatedTest extends DeprecatedTest {   
  4.   
  5.     @Override  
  6.     public void doSomething()   
  7.     {   
  8.         System.out.println("do something in subscribe class");   
  9.     }   
  10.     public static void main(String[] args) {   
  11.         SubDeprecatedTest sdt = new SubDeprecatedTest();   
  12.         sdt.doSomething();   
  13.     }   
  14.   
  15. }   

其中第6行出现警告符号

3、SuppressWarnings 压制某些不必要的警告,压制一个或多个警告

语法: @SuppressWarnings("unchecked") 或者 @SuppressWarnings ({"unchecked","deprecation"})

 

java 代码
  1. package com.test;   
  2.   
  3. import java.util.Date;   
  4. import java.util.Map;   
  5. import java.util.TreeMap;   
  6.   
  7. public class SuppressWarningsTest {   
  8.   
  9.     @SuppressWarnings("unchecked")   
  10.     public static void main(String[] args) {   
  11.         //当在JDK5的环境下编译时,如果不用@SuppressWarnings("unchecked") 这个Annotation,那么下面两行将会出现警告符号   
  12.         Map map = new TreeMap();   
  13.         map.put("hello"new Date());   
  14.            
  15.         System.out.println(map.get("hello"));   
  16.     }   
  17.   
  18. }   

 

java 代码
  1. package com.test;   
  2.   
  3. import java.util.Date;   
  4. import java.util.Map;   
  5. import java.util.TreeMap;   
  6.   
  7. public class SuppressWarningsTest {   
  8.   
  9.     @SuppressWarnings({"unchecked","deprecation"})   
  10.     public static void main(String[] args) {   
  11.         //当在JDK5的环境下编译时,如果不用@SuppressWarnings({"unchecked","deprecation"}) 这个Annotation,那么下面两行将会出现警告符号   
  12.         Map map = new TreeMap();   
  13.         map.put("hello"new Date());   
  14.            
  15.         System.out.println(map.get("hello"));   
  16.         //如果不用@SuppressWarnings({"unchecked","deprecation"}),则将会在dt.doSomething();所在行出现警告符号   
  17.         DeprecatedTest dt = new DeprecatedTest();   
  18.         dt.doSomething();   
  19.     }   
  20.   
  21. }
分享到:
评论

相关推荐

    Annotation--学习:JDK内建Annotation

    - `@NonNull`(非JDK内建,但常见于库如JSR 305): 表示变量或参数不应为null,某些IDE和静态分析工具会使用此信息进行检查。 3. **注解的工作原理** 注解信息被编译器保存在字节码文件中,可以通过反射API访问。...

    JDK5.0 Java Annotation 介绍(ppt)

    1. **定义和使用**:从 JDK5.0 开始,Java 提供了定义和使用自定义 Annotation 的能力。这包括定义 Annotation 类型的语法、声明 Annotation 的语法,以及读取 Annotation 的 API。Annotation 不直接改变代码的执行...

    JDK1.5的annotation

    标题 "JDK1.5的annotation" 指的是Java Development Kit 1.5引入的注解(Annotation)特性。注解是一种元数据,它提供了在代码中嵌入信息的方式,这些信息可以被编译器或Java虚拟机(JVM)在编译时或运行时读取和...

    javax.annotation-api-1.3.2

    JDK9及以上版本没有javax.annotation-api-***.jar包 ,无法使用注解:@Resource JDK新特性,高版本JDK没有自带的javax(java扩展包)了。或者是使用的JDK不完整。 下载javax.annotation.jar包,导入到lib文件夹下,...

    Java annotation (JDK5)

    Java注解(JDK5)是Java编程语言中的一个重要特性,自Java 5版本开始引入。注解(Annotation)提供了一种元数据的形式,允许程序员在代码中嵌入额外的信息,这些信息可以被编译器、JVM或者专门的处理工具在编译时或...

    Annotation(注解)详细教程,jdk新特性

    Annotation(注解)是Java编程语言的一个重要特性,自JDK 1.5引入以来,逐渐成为编写可维护和可扩展代码的关键工具。注解提供了一种方式,使得程序员可以在代码中添加元数据(metadata),这些数据不直接影响代码...

    Annotation技术

    【Annotation技术】是Java语言中的一个重要特性,引入于JDK5,主要目的是为程序元素(如包、类、方法、变量等)添加元数据,即附加信息,这些信息可以被编译器、IDE工具或者运行时系统使用。Annotation不会直接改变...

    JDK5.0-Java Annotation 介绍

    Java Annotation(注解)是自JDK 5.0开始引入的一种元数据,它提供了一种安全、非侵入式的方式来向编译器、虚拟机或者其他的工具提供关于代码的信息。这种信息可以用来进行编译时检查、运行时处理、代码生成等。注解...

    异常解决:错误:namespace element 'annotation-config' … on JDK 1.5 and higher

    标题中的“异常解决:错误:namespace element 'annotation-config' … on JDK 1.5 and higher”涉及的是在Java开发过程中遇到的一个错误,特别是在使用Spring框架时可能会遇到。这个错误通常表明在JDK 1.5及更高版本...

    javax.annotation-api-1.2.jar

    javax.annotation-api-1.2.jar包,注解,声明,@Resource是做bean的注入使用。

    JDK1.8_中文有道翻译版.zip

    JDK1.8允许使用方法引用来简化代码,特别是当需要传递一个方法作为参数时。这减少了创建匿名内部类的需要,使得代码更加简洁。 5. **Date和Time API的增强** Java 8对日期和时间的处理进行了彻底的改造,引入了`...

    jdk1.8 sun源码

    9. **反射与注解**:`java.lang.reflect`包中的反射API以及`java.lang.annotation`包中的注解机制,源码可以帮助理解这两者的底层实现。 10. **安全管理**:`java.security`包中的类和接口,如`SecurityManager`,...

    用Annotation简化Java程序的开发(PDF)

    **Annotation** 是Sun Microsystems(现已被Oracle收购)在发布JDK 5.0时新增的重要特性之一。这种特性允许开发者在代码中添加元数据,即用来描述其他代码的数据。Annotation可以应用于类、方法、参数等多种Java程序...

    JDK8注解应用例子

    虽然不是直接与注解相关的特性,但JDK8引入的`Optional`类与注解一起使用时,可以增强代码的可读性和健壮性。`Optional`用于表示可能为空的值,避免了空指针异常。在注解中,它可以用来标记某些参数或返回值可能缺失...

    jdk1.6.0_10

    同时,增加了`javax.annotation`包,提供注解处理的基础设施,使得开发人员能够创建自定义的注解处理器。 此外,JDK1.6.0_10还对Java运行时性能进行了多方面的优化,包括编译优化、内存分配优化和线程调度优化等。...

    jdk1.8.0_231.rar

    配置JDK 1.8.0_231环境变量是使用这个软件包的关键步骤。通常,你需要设置`JAVA_HOME`变量指向JDK的安装目录,并将`PATH`变量扩展到包含`bin`子目录,这样系统就能在任何地方执行Java命令,如`javac`(编译器)和`...

    java的jdk6安装包

    2. 授予权限:在终端中,使用`chmod +x jdk-6u45-linux-x64.bin`命令赋予可执行权限。 3. 运行安装:使用`./jdk-6u45-linux-x64.bin`启动安装程序。它会创建一个解压后的目录结构,通常在 `/usr/local/java` 或...

    JDK中文文档

    JDK文档会介绍标准注解(如@Override、@Deprecated)以及自定义注解的创建和使用。 **7. 并发编程** Java提供了丰富的并发工具,如ExecutorService、Semaphore、CyclicBarrier等,以支持高效的多线程编程。文档会...

Global site tag (gtag.js) - Google Analytics