惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

N
News | PayPal Newsroom
Security Archives - TechRepublic
Security Archives - TechRepublic
Hacker News: Ask HN
Hacker News: Ask HN
H
Hacker News: Front Page
Apple Machine Learning Research
Apple Machine Learning Research
TaoSecurity Blog
TaoSecurity Blog
Help Net Security
Help Net Security
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
V
V2EX
Hugging Face - Blog
Hugging Face - Blog
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
人人都是产品经理
人人都是产品经理
博客园 - 三生石上(FineUI控件)
Security Latest
Security Latest
Cloudbric
Cloudbric
WordPress大学
WordPress大学
S
SegmentFault 最新的问题
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
www.infosecurity-magazine.com
www.infosecurity-magazine.com
Know Your Adversary
Know Your Adversary
A
Arctic Wolf
L
LangChain Blog
Application and Cybersecurity Blog
Application and Cybersecurity Blog
The GitHub Blog
The GitHub Blog
P
Proofpoint News Feed
W
WeLiveSecurity
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
M
MIT News - Artificial intelligence
Google DeepMind News
Google DeepMind News
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
The Cloudflare Blog
小众软件
小众软件
NISL@THU
NISL@THU
云风的 BLOG
云风的 BLOG
P
Privacy & Cybersecurity Law Blog
S
Security @ Cisco Blogs
博客园 - 【当耐特】
I
InfoQ
Vercel News
Vercel News
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
P
Proofpoint News Feed
O
OpenAI News
Google DeepMind News
Google DeepMind News
N
News and Events Feed by Topic
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
K
Kaspersky official blog
T
Threat Research - Cisco Blogs
量子位
宝玉的分享
宝玉的分享

博客园 - YCOE

MongoDB异常关闭引起的CPU占用 linux php 安装openssl备忘 yum Segmentation fault 错误处理 storytlr -- 安装体验 FullCalendar的二次开发、扩展 记一次笔记本CPU性能骤降 [原创]狂想--QQ构架 [原创]基于jquery.Jcrop的头像编辑器 [原创][C#] 如何将String类型转换成任意基本类型 短信切割算法 Log4net的使用 C# Unrecognized configuration section system.serviceModel 发现Google浏览器(Chrome)的一个JavaScript Bug DWR死锁问题解决 [原创]DWR+OSGi整合v2.0 [原创]DWR与OSGi的整合 [转载]使用java.text包格式化数字和日期 Hibernate merge方法 MySQL数据库使用Innodb数据库类型(工具生成Hibernate+Spring代码)
[原创]Annotation之ElementType.PACKAGE
YCOE · 2009-09-26 · via 博客园 - YCOE

Annotation的出现,给优美的Java再添加了更广阔的空间,让你可以设计出更加完美,更加叹为观止的程序。
项目关系,用到了这个东东
在满天下泛滥的ElementType.TYPE,ElementType.METHOD现在,Google下,就可以发现,用ElementType.PACKAGE真的少得可怜。
正因为如此,写下此日志,给有需要的人一些参考--有关ElementType.PACKAGE

之前还是温习下ElementType的其它各个元素

Code

当一个Annotation接口被声明为
@Target(value=ElementType.PACKAGE)时,它即是对包的修饰注释,看下面的例子

Code

代码里用到的除了ElementType.PACKAGE,其它的都很熟悉了吧,不再多说,不明的,自己Google下
上面定义了一个可在包、类、接口、方法中使用的Annotation

一般情况下,是这样应用的:

Code

OK,但是在Eclipse下会出现一个错误:
Package annotations must be in file package-info.java
可郁闷透了,在Eclipse下,无法直接创建package-info.java类,原因是类名不合法,晕哦~~~
只好强行创建了,使用Eclipse下的新建文件(任意文本文件,把文件名改为package-info.java即可)
文件的内容如下:

@Navigator(name="package", values="我在包里")
package com.xu.ycoe.navigator;
//如果这个包与Annotation不在同一包下时要import进来Annotation的包
import com.xu.ycoe.navigator.Navigator; 

好啦,包的注释是不能放在某一个类里面的,而是要在此包下面新建一个package-info.java文件,在那里面写注释

OK,一切就序,没有报错了。
下面看看怎样使用吧。
其实很简单,直接使用java.lang.Package类就可以了,和类、方法中的Annotation使用完全一样。

Code

但是有一个地方要注意一下,Java的包不是一下子全部一起加载,而是在使用到的时候才去加载的。
这样,在使用Package.getPackage(String name)的时候,如果这个包下的类还没有被加载过,就会直接返回一个null值。原因嘛,看看java源码:

Code

好了,这一点注意一下就没什么问题了。

比较粗糙,大概还是说明白了怎样使用