Java中三种常见的注释(注解) Annotation
Java为我们提供了三种Annotation方便我们开发。
1 Override-函数覆写注解
如果我们想覆写Object的toString()方法,请看下面的代码:
class AnnotationDemo
{
private String info;
public AnnotationDemo(String info)
{
this.info = info;
} public String tostring()
{
return "info的值是:" + this.info;
}
} public class Main
{
public static void main(String[] args)
{
AnnotationDemo ad = new AnnotationDemo("你好");
System.out.println(ad);
System.out.println("Main Done//~~");
}
}
上面的代码,我们期望能在AnnotationDemo类中覆写toString()方法,结果在运行的时候发现,程序调用的是Object的toString方法。原因是,我们的函数代码编写有瑕疵,将本应是toString()的方法名写成了tostring().该bug在我们运行代码后才能暴露出来。如果我们在tostring()上加上@Override注解,就可以显示的告诉JAVA编译器,我的函数是要覆写父类方法,请执行检查。请看代码:
package main; class AnnotationDemo
{
private String info;
public AnnotationDemo(String info)
{
this.info = info;
} @Override
public String tostring()
{
return "info的值是:" + this.info;
}
} public class Main
{
public static void main(String[] args)
{
AnnotationDemo ad = new AnnotationDemo("你好");
System.out.println(ad);
System.out.println("Main Done//~~");
}
}
上面的代码不能通过编译。
2 Depreced-方法过期注解
如果我们在方法上用@Depreced注解,那么就是告诉用户,这个方法已经不推荐使用了。如下面的代码:
class AnnotationDemo
{
private String info;
public AnnotationDemo(String info)
{
this.info = info;
} @Deprecated
public void showInfo()
{
System.out.println(this.info);
} @Override
public String toString()
{
return "info的值是:" + this.info;
}
} public class Main
{
public static void main(String[] args)
{
AnnotationDemo ad = new AnnotationDemo("你好");
System.out.println(ad);
System.out.println("Main Done//~~");
}
}
上面的代码在编译的时候会警告用户,showInfo()方法已经不推荐使用了。
3 @SuppressWarning-压制警告
压制警告的意思是,当我们代码有警告信息的时候,而我们不认为该警告会对我们的代码造成威胁,此时可以用@SuppressWarning将警告的提示信息取消。
@SuppressWarnings("serial")
class AnnotationDemo implements Serializable
{
private String info;
public AnnotationDemo(String info)
{
this.info = info;
}
@Deprecated
public void showInfo()
{
System.out.println(this.info);
}
@Override
public String toString()
{
return "info的值是:" + this.info;
}
}
上面的代码实现了Serializable接口,该接口需要类中有一个serialVersionUID字段已标志不同的版本。而实际上我们不需要这个字段,那么在类上将该警告压制住,编译器就不会在提示警告信息了。
Java中三种常见的注释(注解) Annotation的更多相关文章
- java中三种常见内存溢出错误的处理方法
更多 10 相信有一定java开发经验的人或多或少都会遇到OutOfMemoryError的问题,这个问题曾困扰了我很长时间,随着解决各类问题经验的积累以及对问题根源的探索,终于有了一个比较深入的 ...
- java中三种常见内存溢出错误的处理方法(good)
相信有一定java开发经验的人或多或少都会遇到OutOfMemoryError的问题,这个问题曾困扰了我很长时间,随着解决各类问题经验的积累以及对问题根源的探索,终于有了一个比较深入的认识. 在解决j ...
- Android应用开发中三种常见的图片压缩方法
Android应用开发中三种常见的图片压缩方法,分别是:质量压缩法.比例压缩法(根据路径获取图片并压缩)和比例压缩法(根据Bitmap图片压缩). 一.质量压缩法 private Bitmap com ...
- 关于Java中泛型、反射和注解的扫盲篇
泛型 泛型概念 泛型是在JDK1.5之后引入的,旨在让我们写出更加通用化,更加灵活的代码.通用化的手段在于让数据类型变得参数化,定义泛型时,对应的数据类型是不确定的,泛型方法被调用时,会指定具体类 ...
- 005、Java中使用文档注释
01. 代码如下: package TIANPAN; /** * 此处为文档注释 * @author 田攀 微信382477247 */ public class TestDemo { public ...
- Java中的反射和注解
前言 在Java中,反射机制和注解机制一直是一个很重要的概念,那么他们其中的原理是怎么样呢,我们不仅仅需要会使用,更要知其然而之所以然. 目录 反射机制 反射如何使用 注解定义 注解机制原理 注解如何 ...
- java中的Annotation
java中包含5个基本的Annotation: @Override @Deprecated @SuppressWarnings @SafeVarargs @FunctionalInterface …… ...
- Java中Lambda表达式的使用
简介(译者注:虽然看着很先进,其实Lambda表达式的本质只是一个"语法糖",由编译器推断并帮你转换包装为常规的代码,因此你可以使用更少的代码来实现同样的功能.本人建议不要乱用,因 ...
- Java中Lambda表达式的使用(转)
https://www.cnblogs.com/franson-2016/p/5593080.html 简介(译者注:虽然看着很先进,其实Lambda表达式的本质只是一个"语法糖" ...
随机推荐
- 【Java每日一题】20170113
20170112问题解析请点击今日问题下方的"[Java每日一题]20170113"查看(问题解析在公众号首发,公众号ID:weknow619) package Jan2017; ...
- openresty 前端开发轻量级MVC框架封装一(控制器篇)
通过前面几章,我们已经掌握了一些基本的开发知识,但是代码结构比较简单,缺乏统一的标准,模块化,也缺乏统一的异常处理,这一章我们主要来学习如何封装一个轻量级的MVC框架,规范以及简化开发,并且提供类似p ...
- IE条件注释,嗅探低版本IE用户,并引导升级
一.科普IE条件注释 IE条件注释功能是条件注释是IE特有的一种功能,能对IE系列产品进行单独的XHTML代码处理,注意,主要是针对XHTML,而非CSS.条件注释功能非常强大,可以进行true和fa ...
- Django 同步数据库命令syncdb,makemigrations,migrate
syncdb只支持新增模型到数据库中 2条命令 你将使用2条命令进行迁移和操纵数据库schema: migrate,用来使迁移生效,以及未生效时报告它们的状态. makemigrations,用来根据 ...
- 清楚float浮动的四种方法
1.对父级设置适合CSS高度 对父级设置适合高度样式清除浮动,这里对“.divcss5”设置一定高度即可,一般设置高度需要能确定内容高度才能设置. 2.clear:both清除浮动 为了统一样式,我们 ...
- Object-Widgets-Quick 构造树
Object Tree 当以某个QObject为父类创建一个QObject时, 它会被添加到该父类的children列表中. 析构时, QObjet 会首先检查自己的children, 依次析构, 然 ...
- Tomcat启动极慢问题
启动后,catalina.out日志中会有如下打印: INFO: Creation of SecureRandom instance ,] milliseconds 具体原因,有兴趣的可以自己百度一下 ...
- unittest框架概要
unittest是Python语言自带的单元测试框架,原名PyUnit. 认识unittest 在unittest框架中有4个重要概念:test fixture.test case.test suit ...
- HTC与英特尔联手打造无线VR解决方案
除了TPCAST无线附件组件之外,HTC早前还宣布了与英特尔合作研发WiGig无线VR解决方案,他们还愿意寻找更多的合作伙伴以带来进一步的解决方案. HTC希望确保其Vive头显可以实现无线升级,让用 ...
- [SQL基础教程] 3-4 对查询结果进行排序/ORDER BY
[SQL基础教程] 3-4 对查询结果进行排序/ORDER BY ORDER BY SELECT <列名1>,<列名2>,<列名2>... FROM ORDER B ...