当前位置: 首页 > 编程笔记 >

Java Annotation详解及实例代码

督灿
2023-03-14
本文向大家介绍Java Annotation详解及实例代码,包括了Java Annotation详解及实例代码的使用技巧和注意事项,需要的朋友参考一下

一、Annotation简介

  • 从Java1.5开始,Java增加了元数据(MetaData)的支持,也就是Annotation(注释);
  • Annotation能被用来为程序元素(类、方法、成员变量等)设置元数据;
  • Annotation不能影响程序代码的执行,无论添加、删除Annotation,代码始终如一的执行;
  • 如果希望让程序中的Annotataion能在 运行时其一定作用,只有通过某种配套的工具对Annotation中的信息进行访问和处理,这些工具统称APT(Annotion Processing Tool); 

二、三个基本的Annotation如下:

@Override:限定重写父类方法

  1. 用来指定方法覆盖的,它可以强制一个子类必须要覆盖父类的方法;
  2. 只能用作于方法,不能用于作用其他程序元素;
  3. 主要是帮助我们避免一些低级错误;
public class Fruit {  
  public void foo(){  
    System.out.println("水果的info方法。。。");  
  }  
}  
  
class Apple extends Fruit  
{  
  //使用@Override指定下面方法必须重写父类方法  
  @Override  
  public void foo() {  
     System.out.println("苹果重写水果的info方法...");  
   }  
} 

@Deprecated:标记已过时

用于标识某个程序元素(类、方法等)已过时,当其他程序使用已过时的类、方法时,编译器将会给出警告;

class Apple1{  
  //定义info方法已经过时  
  @Deprecated  
  public void info(){  
    System.out.println("Apple的info方法");  
  }  
}  
  
public class DeprecatedTest {  
  public static void main(String[] args) {  
    //下面使用info方法时将会被编译器警告  
    new Apple1().info();  
  }  
} 

@SuppressWarnings:抑制编译器警告

  1. 指示被Annotation标识的程序元素(以及在该程序元素中的所有字元素)取消显示指定的编译器警告;
  2. 一直作用于该程序元素的所有子元素;
//关闭整个类里的编译器警告  
@SuppressWarnings(value="unchecked")  
public class SuppressWarningsTest {  
  @SuppressWarnings("rawtypes")  
  public static void main(String[] args) {  
    List<String> myList = new ArrayList();  
    myList.add("java");  
  }  
} 

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

 类似资料:
  • 本文向大家介绍java HashMap详解及实例代码,包括了java HashMap详解及实例代码的使用技巧和注意事项,需要的朋友参考一下 java HashMap  Map集合的遍历 方式1,根据键查询值 获取所有键的集合 遍历键的集合,获取每一个键 根据键,查询值 方式2,根据键值对的对象查询键和值 获取所有键值对的对象的集合 遍历键值对的对象的集合,获取到每一个键值对的对象 根据键值对的对象

  • 本文向大家介绍ReactNative Alert详解及实例代码,包括了ReactNative Alert详解及实例代码的使用技巧和注意事项,需要的朋友参考一下 Alert顾名思义一就是一个警告框,一般使用情况比如:退出登录,清楚缓存,提示修改密码等等。。。ReactNative中的Alert只有一个静态方法alert()其中有四个参数:标题,信息,按钮和按钮类型 在Android按钮至多有三个 下

  • 本文向大家介绍Angularjs CURD 详解及实例代码,包括了Angularjs CURD 详解及实例代码的使用技巧和注意事项,需要的朋友参考一下 Angularjs CURD 前言        基于一个手机端的项目使用了angularjs,硬着头皮去用,有很多的疑问还需要一一去验证,刚开始总是感觉找不到北,总是感觉有很多概念,而且似乎ng既夹杂MVC又夹杂MVVM的思想, 忙里偷闲敲了个简

  • 本文向大家介绍java 实现 stack详解及实例代码,包括了java 实现 stack详解及实例代码的使用技巧和注意事项,需要的朋友参考一下 栈是限制插入和删除只能在一个位置上进行的 List,该位置是 List 的末端,叫做栈的顶(top),对于栈的基本操作有 push 和 pop,前者是插入,后者是删除。 栈也是 FIFO 表。 栈的实现有两种,一种是使用数组,一种是使用链表。 栈的应用 平

  • 本文向大家介绍Android 混淆代码详解及实例,包括了Android 混淆代码详解及实例的使用技巧和注意事项,需要的朋友参考一下 为了防止自己的劳动成果被别人窃取,混淆代码能有效防止被反编译,下面来总结以下混淆代码的步骤: 1. 大家也许都注意到新建一个工程会看到项目下边有这样proguard-project.txt一个文件,这个对混淆代码很重要,如果你不小心删掉了,没关系,从其他地方拷贝一个过

  • 本文向大家介绍JavaScript 栈的详解及实例代码,包括了JavaScript 栈的详解及实例代码的使用技巧和注意事项,需要的朋友参考一下 JavaScript 栈 栈是一种遵从先进后出(LIFO)原则的有序集合。 新添加或待删除的元素都保存在栈的末尾,称作栈顶,另一端就叫栈底。 在栈里,新元素都靠近栈顶,旧元素都接近栈底 昨天因为有点事没有更新,今天打算给大家讲讲JavaScript实现的数