注解 @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,一经查实,立即删除!

相关文章

java 并发包之 LongAdder 源码分析

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

解决: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孕育而生。…

果断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环境高级编程一书中阐述了这一点。在这里结合网上资料以及…

kibana 安装

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

“4K”时代将来临!标准/技术一网打尽

第1页&#xff1a;4K 分辨率与 DCI 数字电影院在今年的 CES&#xff08;电子消费大展&#xff09;上&#xff0c;除了让人眼花缭乱新手机等移动设备外&#xff0c;还有一个领域让人感到相当瞩目&#xff0c;这就是所谓的 4K 电视产品。 4K 电视的卖点当然是高分辨率&#xff0c…

Image Processing Wavefronts for HEVC Parallelism

Unlike H.264/AVC, where parallelism was an afterthought, the current HEVC draft contains several proposals aiming at making the codec better “parallelizable”. H.264/AVC supports slices, which were introduced mainly to prevent loss of quality in the case …

Windows 9信息曝光:统一开发接口、整合Cortana到任务栏

摘要&#xff1a;2014年微软全球合作伙伴大会在美国华盛顿正式拉开序幕&#xff0c;会上&#xff0c;微软首席运营商Kevin Turner透露了微软下一代操作系统Windows 9的一些信息&#xff1a;统一开发接口、语音助手Cortana将被整合到任务栏、桌面小工具回归等。 北京时间7月15日…

解决: Error while compiling statement: FAILED: ParseException line 23:13 extraneous input ‘(‘ expectin

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 1. hive 执行sql&#xff0c;报错&#xff1a; Error while compiling statement: FAILED: ParseException line 23:13 extraneous inp…

程序员可以只关心技术么?

摘要&#xff1a;不少程序员爱维护喜欢的技术&#xff0c;虽然他们说的有道理&#xff0c;但程序员价值的实现并不取决于技术。模式不一样&#xff0c;程序员价值也不一样&#xff0c;而这也暗含了程序员生涯的两个进阶模式&#xff0c;读完此文&#xff0c;相信你会重新思考个…

Intellij IDEA中分屏显示方法

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 今天才发现IDEA中还有split view的功能&#xff0c;上网查的时候查到了很多莫名其妙的东西。 实际上对想分屏显示的文件 右键->Spli…