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文件配置. 要 ...
随机推荐
- spring 相关博客
Spring中使用Interceptor拦截器 spirng4 中文文档 ssm整合 Spring系列之Spring常用注解总结 Spring框架中context-param与servlet中in ...
- button在firefox 和 ie 下的问题
最近做了一个关于数据库管理的项目,因为不用考虑ie9以下的兼容性,所以一股脑的写完啦,到测试的时候发现了一个bug IE和火狐下有个模块关闭按钮的hover没有反应,ie不行就算了,火狐怎么也不行?我 ...
- [树套树]K大数查询
有N个位置,M个操作.操作有两种,每次操作如果是1 a b c的形式表示在第a个位置到第b个位置,每个位置加入一个数c如果是2 a b c形式,表示询问从第a个位置到第b个位置,第C大的数是多少.为了 ...
- [FAQ04776]如何默认打开user版本 debug 选项, 默认打开adb 连接【转】
本文转载自:http://blog.csdn.net/thinkinwm/article/details/24865933 Description] 如何默认打开user 版本的USB debug 选 ...
- Android 查询 添加 修改 删除通讯录联系人示例
1.AndroidManifest.xml中添加权限 <uses-permission android:name="android.permission.READ_CONTACTS&q ...
- 15个你不可不知的cmd命令
cmd和dos: dos是Disk Operating System 磁盘操作系统的缩写,它是个人计算机上的一类操作系统.跟Windows图像界面操作系统不同的是,dos是一种面向磁盘的操作系统,并且 ...
- javascript之this指向
情况一: 如果一个函数中有this,但是没有被上一级调用,this指向window 例: function a(){ var num='11'; console.log(this.num); //u ...
- Java多线程:线程状态以及wait(), notify(), notifyAll()
一. 线程状态类型1. 新建状态(New):新创建了一个线程对象.2. 就绪状态(Runnable):线程对象创建后,其他线程调用了该对象的start()方法.该状态的线程位于可运行线程池中,变得可运 ...
- nodejs 全局对象 global
nodejs中有一个全局对象 global,所有的全局变量都是global对象的属性,glabal最根本的作用是作为全局变量的宿主, 全局变量: 1 在最外层定义的变量 2 全局对象的属性 3 隐式定 ...
- 使用JavaScript实现弹出层效果的简单实例
转自:https://www.jb51.net/article/85475.htm 实现弹出层效果的思路非常简单:将待显示的内容先隐藏,在触发某种条件后(如点击按钮),将原本隐藏的内容显示出来. 实现 ...