-
Java连载143-三种系统注解
一、注解功能
-
用处:类、构造方法、成员方法、方法、参数等声明中 -
特性:不影响程序的正常执行,但是会对编译器等辅助工具产生影响 -
定义:添加到Java程序代码上,用来做一些说明和解释
1.元数据
-
定义:用于描述数据的一种数据 -
可使用注解来描述元数据。
2.注解
-
又称为标注,属于程序的元数据,也是程序代码的标记。 -
获得时间:编译、加载类和运行 -
使用反射可以对程序代码进行分析 -
使用系统定义的注意,可以在编译时对程序进行检查 -
使用元注解,可以生成相应的文档 -
用在的地点:包、类、字段、方法、局部变量、方法参数的前面 -
使用方法:@注解
3.Java内置三种注解
(1)@Override
-
作用:用于修饰方法,也就是对父类中的方法进行重写 -
是否重写时必须加上:否 -
建议在重写方法的时候加上这个注解,便于编译器进行检查是否重写错误。 -
例子省略
(2)@Deprecated
-
作用:用于注解不再使用已经过时的类、方法、属性 -
使用位置:类、方法、属性前面
@Deprecated
/**
@deprecated这个类存在缺陷,使用新的NewDeprecatedTest类替代它
*/
public class DeprecatedTest{
//类体
}
(3)@SuppressWarnings
-
作用:用于一致编译器生成警告信息 -
使用位置:类、方法、方法参数、属性和局部变量 -
常用方式:当一个方法调用了一个过时的方法或者进行不安全的类型转换的时候,编译器会生成警告,该注解可以一致警告
public class SuWarningsTest{
public static void main(String[] argsl){
@SuppressWarnings(values={"deprecation"})
//引用过时的类
DeprecatedTest dtest = new DeprecatedTest();
System.out.println(dtest);
}
}
4.我们对三种注解进行举例
package com.bjpowernode.java_learning;
public class D143_1_SuperClass {
//对域var进行注解,表示var已经过时,虽然var已经过时,但是仍然可用
@Deprecated
int var = 125;
@Deprecated
public void MethodA() {
System.out.println("我是父类中中的MethodA()方法");
}
public void MethodB() {//定义一个方法用于子类重写
System.out.println("我是父类中中的MethodB()方法");
}
}
package com.bjpowernode.java_learning;
public class D143_2_SubClass extends D143_1_SuperClass{
@Override
public void MethodB() {
System.out.println("子类重写了父类的MethodB方法");
}
}
package com.bjpowernode.java_learning;
import java.util.LinkedList;
public class D143_3_Test {
public static void main(String[] args) {
D143_1_SuperClass superObj = new D143_1_SuperClass();
superObj.MethodA();
System.out.println(superObj.var);
D143_2_SubClass subObj = new D143_2_SubClass();
subObj.MethodB();
//下面的注释用于抑制其下面的语句的编译警告信息
//如果去掉注解,则编译时会出现警告信息
@SuppressWarings("rawtypes")
LinkedList list = new LinkedList();
//下面两条语句没有加@SuppressWarnings,编译时会出现警告信息
list.add(123);
list.add("Beijing");
for(int i=0;i<2;i++) {
System.out.println(list.get(i));
}
}
}
二、源码:
-
D143_1_SuperClass.java -
D143_2_SubClass.java -
D143_3_Test.java -
https://github.com/ruigege66/Java/blob/master/D143_1_SuperClass
-
https://github.com/ruigege66/Java/blob/master/D143_2_SubClass.java
-
https://github.com/ruigege66/Java/blob/master/D143_3_Test.java
-
https://github.com/ruigege66/Java/tree/master/ibank
出 处:https://www.cnblogs.com/ruigege0000/p/13796000.html
最新更新
带有参数的装饰器
类装饰器
django中的auth模块与admin后台管理
python的日期处理
字符串常用方法
基本数据类型概述
python-map()函数基本用法
python带你实现任意下载AcFun视频数据~
bbs项目之注册功能
变量的定义和使用
三大常用数据库事务详解之三:事务运行
三大常用关系型数据库事务详解之二:基
三大关系型数据库事务详解之一:基本概
MongoDB常用命令(2)
MongoDB基本介绍与安装(1)
SQLServer触发器调用JavaWeb接口
SQL Server索引的原理深入解析
SqlServer2016模糊匹配的三种方式及效率问题
SQL中Truncate的用法
sqlserver 多表关联时在where语句中慎用tri
VB.NET中如何快速访问注册表
ASP.NET中图象处理过程详解
Vue(1)Vue安装与使用
JavaScript 语言入门
js将一段字符串的首字母转成大写
纯原生html编写的h5视频播放器
H5仿原生app短信验证码vue2.0组件附源码地
TypeScript(4)接口
TypeScript(3)基础类型
TypeScript(2)WebStorm自动编译TypeScript配置