Java-注解(不包含元注解)
@SuppressWarnings:抑制警告
package java.lang; import java.lang.annotation.*;
import static java.lang.annotation.ElementType.*;
/**
* since 1.5
*/
@Target({TYPE, FIELD, METHOD, PARAMETER, CONSTRUCTOR, LOCAL_VARIABLE})
@Retention(RetentionPolicy.SOURCE)
public @interface SuppressWarnings {
String[] value();
}
示例1:抑制单类型的警告

@SuppressWarnings("unchecked")
public void addItems(String item){
@SuppressWarnings("rawtypes")
List items = new ArrayList();
items.add(item);
}

示例2:抑制多类型的警告
@SuppressWarnings(value={"unchecked", "rawtypes"})
public void addItems(String item){
List items = new ArrayList();
items.add(item);
}
示例3:抑制所有类型的警告
@SuppressWarnings("all")
public void addItems(String item){
List items = new ArrayList();
items.add(item);
}
@Override:表明被注解的目标是重写父类方法
package java.lang; import java.lang.annotation.*; /**
* @since 1.5
*/
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.SOURCE)
public @interface Override {
}
@Deprecated:标明被注解的目标已过时
package java.lang; import java.lang.annotation.*;
import static java.lang.annotation.ElementType.*; /**
* @since 1.5
*/
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target(value={CONSTRUCTOR, FIELD, LOCAL_VARIABLE, METHOD, PACKAGE, PARAMETER, TYPE})
public @interface Deprecated {
}
@SafeVarargs:抑制编译警告
package java.lang; import java.lang.annotation.*; /**
* @since 1.7
*/
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.CONSTRUCTOR, ElementType.METHOD})
public @interface SafeVarargs {}
@SafeVarargs注解只能用在参数长度可变的方法或构造方法上,且方法必须声明为static或final,否则会出现编译错误。
示例:
package com.annotation; public class SafeVarargsTest { @SafeVarargs
public static void staticMethod(String... args) {
System.out.println("这是一个参数长度可变的static方法");
} @SafeVarargs
public final void finalMethod(String... args) {
System.out.println("这是一个参数长度可变的final方法");
} @SafeVarargs
public static final void staticFinalMethod(String... args) {
System.out.println("这是一个参数长度可变的static final方法");
} }
@Native:声明一个可以被本地代码引用的常量值字段
package java.lang.annotation; /**
* @since 1.8
*/
@Documented
@Target(ElementType.FIELD)
@Retention(RetentionPolicy.SOURCE)
public @interface Native {
}
@FunctionalInterface:声明函数式接口
package java.lang; import java.lang.annotation.*; /**
* @since 1.8
*/
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
public @interface FunctionalInterface {}
被@FunctionalInterface注解的接口,包含以下特性:
- 只能包含一个抽象方法
- 可以定义默认的方法实现
- 可以定义静态的方法实现
- 可以定义java.lang.Object中的public方法,不可以是public final方法
示例:
package com.annotation; @FunctionalInterface
public interface MyFunctionalInterface { /**
* 必须有抽象方法,有且仅有一个
*/
Object onlyAbstractMethod(Object params); default void defaultMethod() {
System.out.println("这是函数式接口中一个默认方法");
} static void staticMethod() {
System.out.println("这是函数式接口中一个静态方法");
}
// 函数式接口里是可以包含Object里的public方法,这些方法对于函数式接口来说,不被当成是抽象方法(虽然它们是抽象方法);因为任何一个函数式接口的实现,默认都继承了Object类,包含了来自java.lang.Object里对这些抽象方法的实现;
// final方法无法被复写,所以此处无法添加Object中的public final方法
@Override
String toString(); @Override
boolean equals(Object obj); @Override
int hashCode(); }
Java-注解(不包含元注解)的更多相关文章
- java注解中的元注解
一:java注解中的元注解 四个元注解分别是:@Target,@Retention,@Documented,@Inherited , 再次强调下元注解是java API提供,是专门用来定义注解的注解, ...
- java的四个元注解 @Retention @Target @Document @Inherited
1. @Retention :注解的保留位置 @Retention(RetentionPolicy.SOURCE) //注解仅存在于源码中,在class字节码文件中不包含 @Retention( ...
- Java中的元注解
注解为我们在代码中添加信息提供了一种形式化的方法,使我们可以在稍后某个时刻非常方便地使用这些数据. 通过使用注解,我们可以将这些元数据保存在Java源代码中,并利用annotation API为自己的 ...
- 【Java编程思想笔记】注解--元注解
参考文章:(小白的小小白的白 )https://blog.csdn.net/weixin_42315600/article/details/80630669 https://www.cnblogs.c ...
- Java 注释类之常用元注解
Java 注释类之常用元注解 自定义Java注释类时,我们使用方式如下: @Retention(RetentionPolicy.RUNTIME)@Target(ElementType.METHOD ...
- Java元注解@Retention规则
@Retention是java当中的一个元注解,该元注解通常都是用于对软件的测试 1.适用方式: @Retention(RetentionPolicy.RUNTIME) @interf ...
- Java从零开始学四十七(注解简述)
一.Java中注解Annotation 什么是注解:用来描述数据的数据(元数据). Java代码里的特殊标记.它为代码中添加用Java程序无法表达的额外信息提供一种形式化的方法,使用我们可以在未来的某 ...
- Java注解教程及自定义注解
Java注解提供了关于代码的一些信息,但并不直接作用于它所注解的代码内容.在这个教程当中,我们将学习Java的注解,如何定制注解,注解的使用以及如何通过反射解析注解. Java1.5引入了注解,当前许 ...
- Java反射API研究(1)——注解Annotation
注解在表面上的意思,只是标记一下这一部分,最好的注解就是代码自身.而在java上,由于注解的特殊性,可以通过反射API获取,这种特性使得注解被广泛应用于各大框架,用于配置内容,代替xml文件配置. 要 ...
随机推荐
- 利用QBuffer和QLinkedList做数据块存储队列
Qt中QByteArray存储数据很方便,使用QBuffer存储大块数据更方便.QBuffer类包装了QByteArray类对象,实际存储还是使用了QByteArray,但QBuffer实现了QIOD ...
- spring的依赖注入(DI)、控制反转(IOC)和面向切面(AOP)
在spring的配置文件增加 <context:component-scan base-package="com.jmu.ccjoin.service"/> <c ...
- java包和javax包的区别
基本类库和扩展类库 一般的lang,util都放在java.包 servlet放在javax包 以前sun把java中的叫核心库,把javax中的叫扩展库.现在sun已经把java和javax中的都叫 ...
- FAT和FAT32文件系统的原理
[转自] http://www.sjhf.net/Article/sjhfdoc/200404/1.html 一.硬盘的物理结构: 硬盘存储数据是根据电.磁转换原理实现的.硬盘由一个或几个表面 ...
- 数据结构之 图论---基于邻接矩阵的广度优先搜索遍历(输出bfs遍历序列)
数据结构实验图论一:基于邻接矩阵的广度优先搜索遍历 Time Limit: 1000MS Memory limit: 65536K 题目描述 给定一个无向连通图,顶点编号从0到n-1,用广度优先搜索( ...
- YTU 2203: 最小节点(线性表)
2203: 最小节点(线性表) 时间限制: 1 Sec 内存限制: 128 MB 提交: 243 解决: 204 题目描述 (线性表)设有一个由正整数组成的无序(向后)单链表,编写完成下列功能的算 ...
- 【字符串】BZOJ上面几个AC自动机求最为字串出现次数的题目
(一下只供自己复习用,目的是对比这几个题,所以写得不详细.需要细节的可以参考其他博主) [BZOJ3172:单词] 题目: 某人读论文,一篇论文是由许多(N)单词组成.但他发现一个单词会在论文中出现很 ...
- [Selenium] 操作浏览器前进后退
driver.get("http://1.com"); driver.navigate().to("http://2.com"); driver.navigat ...
- Android 应用程序窗体显示状态操作(requestWindowFeature()的应用)(转载)
转自:http://www.cnblogs.com/salam/archive/2010/11/30/1892143.html 我们在开发程序是经常会需要软件全屏显示.自定义标题(使用按钮等控件)和其 ...
- Mac下Apache服务器和webDav服务器快速配置
当自己在家敲代码需要发请求时,就可以配置本地Apache,Mac电脑自带的服务器.这个比windows上的本地服务器还要好用,下面写下最快速配置方案. 0.在开始之前需要给自己的电脑设置下开机密码,想 ...