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的更多相关文章

  1. java.lang和java.lang.annotation中实现Annotation的类小结

    加了注解,等于打上了某种标记,没加,则等于没有某种标记,以后,其他程序可以用反射来了解你的类上面有无何种标记,看你有什么标记,就去干相应的事.标记可以加在类,方法,字段,包上,方法的参数上. (1)  ...

  2. SQL Server ->> 调用系统内建扩展存储过程"master.dbo.xp_delete_file"删除过期备份文件

    DECLARE @oldDate DATETIME SET @oldDate = GETDATE()-30 EXECUTE MASTER.dbo.xp_delete_file 0, N'D:\back ...

  3. JAVA(五)反射机制/Annotation

    成鹏致远 | lcw.cnblog.com |2014-02-04 反射机制 1.认识Class类 在正常情况下,必须知道一个类的完整路径之后才可以实例化对象,但是在 java中也允许通过一个对象来找 ...

  4. java 注解Annotation

    什么是注解?  注解,顾名思义,注解,就是对某一事物进行添加注释说明,会存放一些信息,这些信息可能对以后某个时段来说是很有用处的. java注解又叫java标注,java提供了一套机制,使得我们可以对 ...

  5. 二十七、JDK1.5新特性---Annotation

    上篇文章介绍了反射的一些基础知识以及应用案例,本文将介绍jdk 1.5 出现的新特性——Annotation也就是我们所说的注解,即使用注释的方式加入一些程序的信息. 注解相当于一种标记,在程序中加了 ...

  6. 注释(Annotation)

    J2SE 5.0提供了很多新的特征.其中一个很重要的特征就是对元数据(Metadata)的支持.在J2SE 5.0中,这种元数据称为注释(Annotation).通过使用注释,程序开发人员可以在不改变 ...

  7. Java Annotation详解 理解和使用Annotation

    系统中用到了java注解: 查了一下如何使用注解,到底注解是什么: (1)创建方法:MsgTrace Java Class==> 在Create New Class中: name:输入MsgTr ...

  8. java基础篇---注解(Annotation)

    一.概念 Annontation是Java5开始引入的新特征.中文名称一般叫注解.它提供了一种安全的类似注释的机制,用来将任何的信息或元数据(metadata)与程序元素(类.方法.成员变量等)进行关 ...

  9. 反射与annotation

    1,可以通过反射取得使用的全部annotation 2,可以通过反射取得指定的annotation. 一个annotation要想变得有意义, 必须结合反射机制取得annotation中设置的全部内容 ...

随机推荐

  1. 【BZOJ 3669】 3669: [Noi2014]魔法森林 (动态spfa)

    3669: [Noi2014]魔法森林 Description 为了得到书法大家的真传,小E同学下定决心去拜访住在魔法森林中的隐士.魔法森林可以被看成一个包含个N节点M条边的无向图,节点标号为1..N ...

  2. CSS3新增属性2

    阴影 box-shadow:水平偏移 垂直偏移; 偏移可以负值 box-shadow:水平偏移 垂直偏移 颜色; box-shadow:水平偏移 垂直偏移 模糊值 颜色; /*最常见的*/ box-s ...

  3. Largest Smallest Cyclic Shift

    Largest Smallest Cyclic Shift 题目来源: Atcoder Code Festival 2017 Qual B Problem F 题目大意: 有\(X\)个字符'a',\ ...

  4. php的json_encode()之后float类型丢失精度

    在后台php中,金额保留两位小数.但是前端显示精度丢失,出现了14位小数的奇怪现象.本来以为是前端js解析之后出现的问题.检查之后发现json_encode()之后就出现了. 原始的值: array( ...

  5. 用Java Swing实现Freecell(空当接龙)

     目录 引言 1 游戏规则 2 界面设计和大致逻辑 2.1 界面设计 2.2 大致逻辑 3 主要功能模块设计与实现 3.1 主要思路 3.2 主要工具类 3.3 异常类 3.4 游戏初始化模块 3.5 ...

  6. Java学习笔记(10)

    目前多态情况下不能访问子类特有的成员 如果需要访问子类特有的成员,那么需要进行类型强制转换,转换为子类的类型然后再进行调用 基本数据类型的转换: 小数据类型------------->大数据类型 ...

  7. hibernate使用原生SQL查询

    以下是Demo测试Hibernate 原生SQL查询: import java.util.Iterator; import java.util.List; import java.util.Map; ...

  8. 工作流 jBMP4.4表结构

    (一)资源库和运行时表结构       JBPM4_DEPLOYMENT,      JBPM4_DEPLOYPROP,      JBPM4_LOB 存储流程定义相关的部署信息       JBPM ...

  9. ucenter创始人密码忘记了,修改方法

    简单的:1.在UCenter/data/下找到config.inc.php,打开找到下面2行代码: define('UC_FOUNDERPW', '3858cdf66b0794bfd435af8c0c ...

  10. redis节点管理-新增从节点

    原文:http://blog.sina.com.cn/s/blog_53b45c4d0102wg12.html 新增从节点 新增一个节点7008节点,使用add-node --slave命令. [pl ...