Annotation:系统内建Annotation
1,掌握系统内建的三个Annotation。
Annotation被称为元数据特效,也被称为注释,即:使用注释方式,加入一些程序信息。
Java.lang.annotation接口是所有Annotaion必须实现的接口。
系统已经内建的三个Annotation:
@Override:覆写的Annotation. @Deprecated:不赞成使用的Annotation @SuppressWarning:压制安全警告的Annotation
@Overrride
@overrride表示方法覆写的正确性,例如,如下代码:
package 类集; class Person{
public String getInfo(){ // 取得信息
return "这是一个Person类。" ;
}
};
class Student extends Person{ // 继承此类
public String getInfo(){ // 覆写方法
return "这是一个Student类。" ;
}
};
public class GetInterfaceDemo {
public static void main(String[] args) throws Exception {
Person per = new Student() ;
System.out.println(per.getInfo()) ; // 输出信息
}
}
此时,可能存在某种事物,将方法名称getInfo编写错误。例如写成getinfo,大小写错误,这个时候
为了保证覆写正确性,添加覆写属性。Overrride,保证程序正确执行。
例如,写成下面,就会报错。
package 类集; class Person{
public String getInfo(){ // 取得信息
return "这是一个Person类。" ;
}
};
class Student extends Person{ // 继承此类
@Override
public String getinfo(){ // 覆写方法,这里覆写的方法大小写错误了,就会报错。
return "这是一个Student类。" ;
}
};
public class GetInterfaceDemo {
public static void main(String[] args) throws Exception {
Person per = new Student() ;
System.out.println(per.getInfo()) ; // 输出信息
}
}
@Deprecated
使用Deprecated注释的Annotation本身是不建议使用的操作,
注释方法:
package 类集; class Demo{
@Deprecated // 声明不建议使用的操作
public String getInfo(){
return "这是一个Person类。" ;
}
};
public class GetInterfaceDemo {
public static void main(String[] args) throws Exception {
Demo d = new Demo() ;
System.out.println(d.getInfo()) ;
}
}
以上程序并不会使得编译出差,但是会产生一个警告信息。
还可以注释类:
package 类集; @Deprecated // 声明不建议使用的操作
class Demo{
public String getInfo(){
return "这是一个Person类。" ;
}
};
public class GetInterfaceDemo {
public static void main(String[] args) throws Exception {
Demo d = new Demo() ;
System.out.println(d.getInfo()) ;
}
}
@SuppressWarning.
用于压制警告信息,
以之前的泛型操作为例,在泛型中如果没有指定泛型类型,则使用时候肯定出现安全警告。
正常情况不使用annotation。没有指定泛型类型。
package 类集; class Demo<T>{
private T var ;
public T getVar(){
return this.var ;
}
public void setVar(T var){
this.var = var ;
}
};
public class GetInterfaceDemo {
public static void main(String args[]){
Demo d = new Demo() ;//因为没有给泛型指定类型,这里会有警告
d.setVar("小华") ; //这里会有警告
System.out.println("内容:" + d.getVar()) ;
}
}
此时可以使用SuppressWarning这个Annotation将这种警告信息进行压制。
注释信息表示要强制压制的信息,可以通过@SuppressWarnings(“信息”)方式进行注释,里面的信息可以用数组形式注释,
例如:@SuppressWarnings({ "unchecked", "rawtypes" })。
package 类集; class Demo<T>{
private T var ;
public T getVar(){
return this.var ;
}
public void setVar(T var){
this.var = var ;
}
};
public class GetInterfaceDemo {
@SuppressWarnings({ "unchecked", "rawtypes" })
public static void main(String args[]){
Demo d = new Demo() ;
d.setVar("小华") ;
System.out.println("内容:" + d.getVar()) ;
}
}
通过Deprressed进行强制警告,通过SuppressWarning进行压制警告
package 类集; @Deprecated
class Demo<T>{
private T var ;
public T getVar(){
return this.var ;
}
public void setVar(T var){
this.var = var ;
}
};
public class GetInterfaceDemo {
@SuppressWarnings({"unchecked","deprecation"})
public static void main(String args[]){
Demo d = new Demo() ;
d.setVar("小华") ;
System.out.println("内容:" + d.getVar()) ;
}
}
@SuppressWarning中的关键字。
通过刚才发现Suppresswarning注释发现,里面是使用value字符串数组接收的,所以在传入注释参数的时候也可以明确指出要传给哪个变量。
package 类集; @Deprecated
class Demo<T>{
private T var ;
public T getVar(){
return this.var ;
}
public void setVar(T var){
this.var = var ;
}
};
public class GetInterfaceDemo {
@SuppressWarnings(value={"unchecked","deprecation"})
public static void main(String args[]){
Demo d = new Demo() ;
d.setVar("李兴华") ;
System.out.println("内容:" + d.getVar()) ;
}
}
Annotation:系统内建Annotation的更多相关文章
- java.lang和java.lang.annotation中实现Annotation的类小结
加了注解,等于打上了某种标记,没加,则等于没有某种标记,以后,其他程序可以用反射来了解你的类上面有无何种标记,看你有什么标记,就去干相应的事.标记可以加在类,方法,字段,包上,方法的参数上. (1) ...
- SQL Server ->> 调用系统内建扩展存储过程"master.dbo.xp_delete_file"删除过期备份文件
DECLARE @oldDate DATETIME SET @oldDate = GETDATE()-30 EXECUTE MASTER.dbo.xp_delete_file 0, N'D:\back ...
- JAVA(五)反射机制/Annotation
成鹏致远 | lcw.cnblog.com |2014-02-04 反射机制 1.认识Class类 在正常情况下,必须知道一个类的完整路径之后才可以实例化对象,但是在 java中也允许通过一个对象来找 ...
- java 注解Annotation
什么是注解? 注解,顾名思义,注解,就是对某一事物进行添加注释说明,会存放一些信息,这些信息可能对以后某个时段来说是很有用处的. java注解又叫java标注,java提供了一套机制,使得我们可以对 ...
- 二十七、JDK1.5新特性---Annotation
上篇文章介绍了反射的一些基础知识以及应用案例,本文将介绍jdk 1.5 出现的新特性——Annotation也就是我们所说的注解,即使用注释的方式加入一些程序的信息. 注解相当于一种标记,在程序中加了 ...
- 注释(Annotation)
J2SE 5.0提供了很多新的特征.其中一个很重要的特征就是对元数据(Metadata)的支持.在J2SE 5.0中,这种元数据称为注释(Annotation).通过使用注释,程序开发人员可以在不改变 ...
- Java Annotation详解 理解和使用Annotation
系统中用到了java注解: 查了一下如何使用注解,到底注解是什么: (1)创建方法:MsgTrace Java Class==> 在Create New Class中: name:输入MsgTr ...
- java基础篇---注解(Annotation)
一.概念 Annontation是Java5开始引入的新特征.中文名称一般叫注解.它提供了一种安全的类似注释的机制,用来将任何的信息或元数据(metadata)与程序元素(类.方法.成员变量等)进行关 ...
- 反射与annotation
1,可以通过反射取得使用的全部annotation 2,可以通过反射取得指定的annotation. 一个annotation要想变得有意义, 必须结合反射机制取得annotation中设置的全部内容 ...
随机推荐
- [Luogu1979][NOIP2013]华容道(BFS+SPFA)
考虑从起点到终点的过程,一定是先将空格子移到指定格子旁边,和指定格子交换,再移到下一个指定格子要到的地方,再交换,如此反复. 于是问题分为两个部分: 1.给定两个曼哈顿距离为2的格子求最短路,BFS即 ...
- 背包系列练习及总结(hud 2602 && hdu 2844 Coins && hdu 2159 && poj 1170 Shopping Offers && hdu 3092 Least common multiple && poj 1015 Jury Compromise)
作为一个oier,以及大学acm党背包是必不可少的一部分.好久没做背包类动规了.久违地练习下-.- dd__engi的背包九讲:http://love-oriented.com/pack/ 鸣谢htt ...
- django2与1的差别和视图
django1与2路由的差别 在django1中的url在django2中为re_path django2中新增了path 1.from django.urls import path 2.不支持正则 ...
- (原创)Stanford Machine Learning (by Andrew NG) --- (week 9) Anomaly Detection&Recommender Systems
这部分内容来源于Andrew NG老师讲解的 machine learning课程,包括异常检测算法以及推荐系统设计.异常检测是一个非监督学习算法,用于发现系统中的异常数据.推荐系统在生活中也是随处可 ...
- bzoj 1636: [Usaco2007 Jan]Balanced Lineup -- 线段树
1636: [Usaco2007 Jan]Balanced Lineup Time Limit: 5 Sec Memory Limit: 64 MBSubmit: 772 Solved: 560线 ...
- MYSQL复习笔记10-连接
Date: 20140219Auth: Jin 一.介绍连接是二元运算,可以对两个表或多个表进行查询.T-SQL中分两大类,一是符合SQL标准的连接谓词表示形式,二是T-SQL扩展的使用关键字JOIN ...
- Linux 内核中的 GCC 特性
https://www.ibm.com/developerworks/cn/linux/l-gcc-hacks/ GCC 和 Linux 是出色的组合.尽管它们是独立的软件,但是 Linux 完全依靠 ...
- delphi 杀死进程
http://blog.sina.com.cn/s/blog_554b1f1b0100aygo.html unit Tlhelp323; interface uses Windows,SysUtil ...
- 【maven】pom.xml文件没错,但是项目有小红叉,Problems中可以看到错误:“Dynamic Web Module 3.0 requires Java 1.6 or newer.”
解决方法: 1.将 <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>m ...
- 解决新浪微博API调用限制 突破rate_limit_status瓶颈
新浪微博开放平台API的调用和TWITTER接口一样,都是受限的,以小时为单位进行限定. 他有两个限制原则 1.用户不登录基于IP的限制,每小时1000次 2.用户登录了基于用户的限制,每小时1000 ...