注解 @Target 用法

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。

@Target:

   @Target说明了Annotation所修饰的对象范围:Annotation可被用于 packages、types(类、接口、枚举、Annotation类型)、类型成员(方法、构造方法、成员变量、枚举值)、方法参数和本地变量(如循环变量、catch参数)。在Annotation类型的声明中使用了target可更加明晰其修饰的目标。

  作用:用于描述注解的使用范围(即:被描述的注解可以用在什么地方)

 取值(ElementType)有

public enum ElementType {/**用于描述类、接口(包括注解类型) 或enum声明 Class, interface (including annotation type), or enum declaration */TYPE,/** 用于描述域 Field declaration (includes enum constants) */FIELD,/**用于描述方法 Method declaration */METHOD,/**用于描述参数 Formal parameter declaration */PARAMETER,/**用于描述构造器 Constructor declaration */CONSTRUCTOR,/**用于描述局部变量 Local variable declaration */LOCAL_VARIABLE,/** Annotation type declaration */ANNOTATION_TYPE,/**用于描述包 Package declaration */PACKAGE,/*** 用来标注类型参数 Type parameter declaration* @since 1.8*/TYPE_PARAMETER,/***能标注任何类型名称 Use of a type* @since 1.8*/TYPE_USE

 

1

ElementType.TYPE_PARAMETER(Type parameter declaration) 用来标注类型参数, 栗子如下:

@Target(ElementType.TYPE_PARAMETER)@Retention(RetentionPolicy.RUNTIME)public @interface TypeParameterAnnotation {}// 如下是该注解的使用例子public class TypeParameterClass<@TypeParameterAnnotation T> {public <@TypeParameterAnnotation U> T foo(T t) {return null;}   }

ElementType.TYPE_USE(Use of a type) 能标注任何类型名称,包括上面这个(ElementType.TYPE_PARAMETER的),栗子如下:

public class TestTypeUse {@Target(ElementType.TYPE_USE)@Retention(RetentionPolicy.RUNTIME)public @interface TypeUseAnnotation {}public static @TypeUseAnnotation class TypeUseClass<@TypeUseAnnotation T> extends @TypeUseAnnotation Object {public void foo(@TypeUseAnnotation T t) throws @TypeUseAnnotation Exception {}}// 如下注解的使用都是合法的@SuppressWarnings({ "rawtypes", "unused", "resource" })public static void main(String[] args) throws Exception {TypeUseClass<@TypeUseAnnotation String> typeUseClass = new @TypeUseAnnotation TypeUseClass<>();typeUseClass.foo("");List<@TypeUseAnnotation Comparable> list1 = new ArrayList<>();List<? extends Comparable> list2 = new ArrayList<@TypeUseAnnotation Comparable>();@TypeUseAnnotation String text = (@TypeUseAnnotation String)new Object();java.util. @TypeUseAnnotation Scanner console = new java.util.@TypeUseAnnotation Scanner(System.in);}}

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/447455.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

软件开发者如何准备未来?

摘要&#xff1a;现今&#xff0c;科技领域技术更新非常迅速&#xff0c;作为该领域幕后勤恳劳作的软件开发者要想在其中永远保持领先&#xff0c;跟得上时代&#xff0c;就需要时刻面向未来做好准备。但面对各种技术各种开发语言&#xff0c;软件开发者该如何做&#xff1f; …

java 并发包之 LongAdder 源码分析

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 LongAdder是java8中新增的原子类&#xff0c;在多线程环境中&#xff0c;它比AtomicLong性能要高出不少&#xff0c;特别是写多的场景。…

JAVA 内存模型 (Java Memory Model,JMM)

JAVA内存模型 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 Java内存模型&#xff08;Java Memory Model&#xff0c;JMM&#xff09; 是在硬件内存模型基础上更高层的抽象&#xf…

解决:java.lang.ArithmeticException: Non-terminating decimal expansion; no exact representable decimal

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 报错如下&#xff1a; java.lang.ArithmeticException: Non-terminating decimal expansion; no exact representable decimal result.…

解决:Command line is too long. In order to reduce its length classpath file can be used.

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 1. 原本可以正常运行的项目&#xff0c;突然出现这个错&#xff1a; Command line is too long. In order to reduce its length class…

性能提升利器之固态硬盘和序列化漫谈

摘要&#xff1a;假设我们已经构建了下一个杀手级应用&#xff0c;而且变得越来越受欢迎&#xff0c;突破负载极限&#xff0c;以我们目前的增长的速度&#xff0c;需要在3个月内将需要将性能提升10倍。我们该怎么做&#xff1f; 【编者按】当面对一个性能扩展问题时&#xff…

查看本机IP的方法

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 1. 打开网络和共享中心 2.更改适配器设置 3. 右键选择 状态 4.选择详情 5.找到IP

来自前苹果高管Heidi Roizen的经验之谈

摘要&#xff1a;Heidi Roizen曾是T/Maker的联合创始人兼CEO&#xff1b;此后Heidi Roizen加入苹果公司担任开发者关系的高级副总裁。本文她分享了8条箴言&#xff0c;希望能为各位开发者带来启迪&#xff0c;体会生活与工作上的人生感悟。 【编者按】Heidi Roizen曾是T/Maker的…

解决:Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x00000000c5330000, 986513408,

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 1.只是想启动elasticsearch,报错如题&#xff1a; Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x00000000c…

Docker CEO Ben Golub:Docker借助开源、天时走向成功

摘要&#xff1a;Docker CEO Ben Golub接受了Gigaom专访&#xff0c;他表示&#xff0c;Docker正是借助开源、天时走向了成功。而作为Docker前身&#xff0c;现任CTO Hykes在运作dotCloud过程中&#xff0c;发现多平台的需求越来越受到用户关注&#xff0c;于是Docker孕育而生。…

linux系统/opt目录和/usr/local目录有什么区别

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 在学习linux的时候&#xff0c;看到/opt目录和/usr/local目录都是安装软件的目录&#xff0c;那这两个目录有什么区别呢&#xff1f; 一…

果断Mark!Searchcode——源代码搜索利器

摘要&#xff1a;Searchcode是一款免费的源代码/文档搜索引擎&#xff0c;汇聚Github、Codeplex、Sourceforge等多家开源站点&#xff0c;拥有超过20万个项目、180亿行源代码&#xff0c;能以特殊字符、语言、仓库和源方式从90多种语言找到函数、API的真实代码。 Searchcode是…

elasticsearch 安装( 阿里云ECS )、远程访问、启动报错处理

附另 2 文章&#xff1a; elasticsearch-head 安装 kibana 安装 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 1. 从网上下载到 linux 版本的 tar 包&#xff1a;elasticsearch-6.7.…

解决:git: command not found、apt-get: command not found、git 安装

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 运行 git 失败&#xff0c;因为没有安装 git。 于是就安装&#xff1a;apt-get install git&#xff0c;于是得到后一个报错。 原来 a…

为什么程序员要尽量少写代码

软件开发的一个最基本的事实是写代码&#xff0c;但是最大的误区之一就是把写代码当做工作。当我作为一个程序员第一次参加工作的时候&#xff0c;就犯了这样的错误。老实说&#xff0c;写代码真的是一件特有意思的事&#xff0c;它的强大功能&#xff0c;它的多种作用等等都让…

elasticsearch-head 安装

elasticsearch 安装( 阿里云ECS )、远程访问、启动报错处理 kibana 安装 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 1. 首先安装好 git、node.js、npm、cnpm yum -y install g…

C语言探秘:C代码在内存中的分布

估计会有很多初学者跟我有一样的疑惑&#xff0c;这些编写好的代码是放在磁盘中&#xff0c;但是运行将会被copy至内存中去运行。但他们在内存中是怎么分布呢。在 “linux下c编程圣经”&#xff08;apue&#xff09;UNIX环境高级编程一书中阐述了这一点。在这里结合网上资料以及…

集合:按元素的中文属性排序

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 1. 要排序的元素类&#xff1a; public static class NameCount implements Comparable<NameCount> {Collator collator Collato…

kibana 安装

附另 2 文章&#xff1a; elasticsearch-head 安装 elasticsearch 安装( 阿里云ECS )、远程访问、启动报错处理 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 我的 elasticsearch 是…

linux jps 命令

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 jps -- Java Virtual Machine Process Status Tool 可以列出本机所有java进程的pid jps [ options ] [ hostid ] 选项 -q 仅输出…