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表达式的本质只是一个"语法糖" ...
随机推荐
- Perception(1.2)
4.1.2 Definition of Coordinate Systems The global coordinate system is described by its origin lying ...
- linux-命令-top
top 实时动态显示系统状态.(cpu.内存.swap.task) 1. top 汇总cpu.内存.swap.task信息 和 列表展示进程维度的cpu.内存.swap.task信息 2. to ...
- 关于64位win7环境下VS连接oracle数据库的问题
本机环境:64位win7,安装了64位的oracle桌面类 服务器环境:64位windows server 2008,64位oracle服务器端 问题:本机用sql developer连数据库没有问题 ...
- git的一些疑难点
一 .git reset,git revert,git checkout的区别和联系 主要参考:http://www.cnblogs.com/houpeiyong/p/5890748.html git ...
- android studio 工程设置项
1.在<工程根目录>\build\generated文件夹中 存在 xxx.jar 这个文件是用来做单元测试用的,但该功能目前还处于实验阶段,不想用可以关了. 去掉勾后,clean一下工程 ...
- 【Map】Double Queue
Double Queue Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 13258 Accepted: 5974 Des ...
- Mediawiki随笔
http://www.ibm.com/developerworks/cn/opensource/os-mediawiki/ 定制wiki http://www.zzbaike.com/wiki/Me ...
- 使用python修改QQ密保(脚本)
一.基于以下目的: 1.为了增加对Http协议理解能力,对QQ密保修改的请求进行了分析 2.为了锻炼python的编写能力 3.对web综合知识的理解 花了点时间写了这个脚本,下面介绍脚本的过程 二. ...
- 【bootstrap】时间选择器datetimepicker和daterangepicker
在bootstrap中的时间选择器有两种:dateTimePicker和dateRangePicker 1.dateTimePicker好像是官方嫡插件: 需要的文件: <link rel= ...
- 跳转到设置页面 与appstory
//MARK:系统跳到应用设置页面 func systemMySet(){ let url = NSURL(string: UIApplicationOpenSettingsURLString) if ...