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表达式的本质只是一个"语法糖" ...
随机推荐
- trie树模板(统计难题)
统计难题 Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 131070/65535 K (Java/Others)Total Submi ...
- saltstack布署实践 【安装】
借用链接http://www.cnblogs.com/liuyansheng/p/6094122.html的安装方式,我再同步一下其它操作系统的安装方式,由原Docker官网拷贝 Ubuntu1404 ...
- CODEFORCES-PROBLEMSET
1A 水题 然而看不仔细爆int了 c++ #include <bits/stdc++.h> using namespace std; typedef long long ll; in ...
- Python 3
#对于任意可迭代对象可使用序列拆分操作符*进行拆分 #可用iterable对分片进行赋值等操作(相当于del分片并把iterable插入其中,所以二者长度可以不同) #del取消对象引用与数据项之间的 ...
- 写一个MyList
首先定义接口 using System; using System.Collections.Generic; using System.Linq; using System.Text; using S ...
- C语言指针、地址、赋值三者含义
先来一个观点.大家先看看对不对 按:在CSDN论坛上,有位坛友提到这个问题: ==================================== 先看一段代码: #include<stdi ...
- 循序渐进看Java web日志跟踪(1)-Tomcat 日志追踪与配置
日志,是软件运行过程中,对各类操作中重要信息的记录. 日志跟踪,不管对于怎么样的项目来说,都是非常重要的一部分,它关系到项目后期的维护和排错,起着举足轻重的作用.项目开发过程中,对日志的记录规则,也将 ...
- gc学习(转)
一.GC特性以及各种GC的选择 1.垃圾回收器的特性 2.对垃圾回收器的选择 2.1 连续 VS. 并行 2.2 并发 VS. stop-the-world 2.3 压缩 VS. 不压缩 VS. 复制 ...
- 使用Nginx+Lua(OpenResty)开发高性能Web应用
摘自(http://jinnianshilongnian.iteye.com/blog/2280928) 在互联网公司,Nginx可以说是标配组件,但是主要场景还是负载均衡.反向代理.代理缓存.限流等 ...
- excel 导入 与 导出
Excel导入 public ActionResult Excel(HttpPostedFileBase file) { HttpPostedFileBase fi ...