Java——Annotation注解基本总结(简介、覆写、过期声明、压制警告)
时间:2022-07-25
本文章向大家介绍Java——Annotation注解基本总结(简介、覆写、过期声明、压制警告),主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
1、Annotation简介
Annotation(注解)提供了一种新的项目开发结构模式,利用Annotation,可以实现零配置的开发。
对于软件项目开发,经过了以下三个开发阶段:
- 第一阶段:代码完成期。将所需要的配置信息,直接写死在程序里。这样的程序编写起来最方便,但是不适合于变化,一旦配置发生变化,会导致程序必须进行重新编写。
- 第二阶段:配置文件期。用配置文件与开发的程序代码进行分离,配置文件中保存需要的基础信息,如IP地址、用户名、密码等,而后在程序运行时根据配置文件的内容进行调整,若进行信息的维护,只需要修改配置文件即可,不需要修改程序代码。但是,这样的配置对于后期的维护很混乱,因为随着项目复杂度的增加,配置文件也太多了。
- 第三阶段:注解阶段。将所有相关的配置信息写回到程序里,这样供开发者方便维护,但是为了与程序进行有效分离,可以采用特定手段进行,如Annotation就是一种实现分离的手段。这样配置在上,代码在下,易于维护,但是,不好的是,要修改,还是要改代码。
Java中最早只有三个Annotation:@Deprecated、@Override、@SuppressWarnings,而后又增加了许多,且许多第三方的开发工具也又大量的Annotation。
2、@Override 覆写注解
这个注解的功能主要是标识某一个方法为覆写父类的方法。
【举例】:可能存在的问题
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
System.out.println(new Person());
}
}
class Person{
public String tostring(){ //本意是要进行方法覆写
return "a people";
}
}
以上程序,本意是想Person类中覆写Object类的toString()方法,但是由于自己的失误,字母写错了,而程序编译又不会报错,以为是一个新的方法,所以,若想在程序编译时报错,可以使用注解@Override。
现在的IDE工具,只要进行方法覆写时,都会自动生成此注解。
3、@Deprecated 过期声明注解
指的是声明一个过期的不建议使用的操作方法。这种过期方法的声明,在JDK中是到处可见的,但并不意味着这些方法是错误的,只能说在某一些环境中可能出现问题。
4、@SuppressWarnings 压制警告
利用此注解可以压制警告,压制警告信息不再提示。
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
@SuppressWarnings("null")
Person per = null;
per.fun();
}
}
class Person<T>{
@Deprecated
public void fun(){
}
}
5、总结
以上三个注解都是Java最基础的注解,把这些标记记一下就可以,IDE工具可以搞定。
- 「微信小程序」剖析(二):框架原理 | 在桌面浏览器上运行的尝试
- Working with Windows Workflow Foundation in ASP.NET
- 微信小程序剖析【下】:运行机制
- android多屏幕分辨率适配
- 一步一步创建ASP.NET MVC5程序[Repository+Autofac+Automapper+SqlSugar](二)
- 怎么解决web service circular reference 问题
- android使用LruCache对listview加载图片时候优化处理
- 如何创建一个兼容「微信小程序」的Web框架:WIN
- RePractise前端篇: 前端演进史
- Git远程库版本回滚
- android 之ndk开发
- 【持续集成】使用 Jenkinsfile 设计直观的 Pipeline
- 将OpenOffice.org变成一个文档格式转换工具
- 客户端的web技术
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- Android 编译出错版本匹配问题解决办法
- Linux(CentOS7)使用 RPM 安装 mysql 8.0.11的教程
- Android Adapter里面嵌套ListView实例详解
- Centos7 安装达梦数据库的教程
- Android开发使用Handler实现图片轮播功能示例
- 简单实现Android刮刮卡效果
- CentOS7.4下 安装JDK1.8的图文教程
- Android Studio中导入JNI生成的.so库的实现方法
- Android实现文件上传和下载倒计时功能的圆形进度条
- 使用Apache ab进行http性能测试
- Android Imageloader的配置的实现代码
- Linux下如何查看版本信息的方法步骤
- Android开发实现Files文件读取解析功能示例
- Android实现iPhone晃动撤销输入功能 Android仿微信摇一摇功能
- 猿实战21——商品发布之商品数据存储