新建一個(gè)注釋類型,這個(gè)類型指明了一本名著的作者和他的email。
為林州等地區(qū)用戶提供了全套網(wǎng)頁(yè)設(shè)計(jì)制作服務(wù),及林州網(wǎng)站建設(shè)行業(yè)解決方案。主營(yíng)業(yè)務(wù)為做網(wǎng)站、成都網(wǎng)站設(shè)計(jì)、林州網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠(chéng)的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長(zhǎng)期合作。這樣,我們也可以走得更遠(yuǎn)!
java 代碼
- import java.lang.annotation.*;
-
- @Retention(RetentionPolicy.RUNTIME)
-
- @Target(ElementType.METHOD)
-
- public@interface BookAuthor {
-
- String name();
-
- String email();
-
- }
-
使用這個(gè)注釋為我們的方法加上注解:
java 代碼
- import java.lang.annotation.Annotation;
-
- publicclass MetadataShow {
-
- @BookAuthor(name='曹雪芹',email='caoxueqin@hongloumeng.books')
-
- publicvoid introHongLouMeng() {
-
- System.out.println('這是一本好書(shū)啊');
-
- }
-
- publicstaticvoid main(String[] args) {
-
- MetadataShow metadata =new MetadataShow();
-
- try {
-
- Annotation[] annotation = metadata.getClass().getMethod('introHongLouMeng').getAnnotations();
-
- for(Annotation a : annotation) {
-
- System.out.printf('作者:%s%n', ((BookAuthor)a).name());
-
- System.out.printf('他的電子郵件(可能已被注銷(xiāo)):%s%n', ((BookAuthor)a).email());
-
- }
-
- }
-
- catch (SecurityException e) {
-
- e.printStackTrace();
-
- }
-
- catch (NoSuchMethodException e) {
-
- e.printStackTrace();
-
- }
-
- }
-
- }
-
請(qǐng)注意,要想在程序運(yùn)行時(shí)能讀取這些注釋,需要在注釋的聲明的時(shí)候加上
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD) //也可能時(shí)其他類型,如針對(duì)聲明的注釋
這是對(duì)注釋的注釋。
編譯這兩個(gè)文件:
javac -source 5 -target 5 -d bin src/com/kuaff/jdk5/*.java
[@more@]
網(wǎng)頁(yè)標(biāo)題:JDK5.0新特性的學(xué)習(xí)--元數(shù)據(jù)
標(biāo)題來(lái)源:
http://weahome.cn/article/pjssee.html