日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java annotation list_java-注解annotation

發(fā)布時間:2024/9/27 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java annotation list_java-注解annotation 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

package cd.itcast.day2;

import java.lang.reflect.Method;

import java.util.ArrayList;

import java.util.Arrays;

import java.util.Date;

import java.util.List;

/**

* 注解

*

* 注解的使用構(gòu)成: 1,注解的申明 2,在類型(代碼)上面打上注解 3,第三方的程序在使用打了注解的類型

*

* 作業(yè):自己設(shè)計一套文檔標(biāo)簽,如果我在一個類上面加了這些標(biāo)簽,我把這個類作為參數(shù)傳給一個方法,就能為這個類的注釋生成一個API文檔文件

*

* @author Administrator

*

*/

public class AnnotationDemo {

/**

* 使用Annotation(使用反射來得到標(biāo)簽實例) A getAnnotation(Class

* annotationClass):得到指定類型的注解實例 Annotation[] getAnnotations():得到該類型上面的所有注釋實例

* Annotation[] getDeclaredAnnotations() :返回直接存在于此元素上的所有注釋。 boolean

* isAnnotation() : 該類型是否是一個標(biāo)簽類型(Class) boolean isAnnotationPresent(Class

* extends Annotation> annotationClass) :判斷該類型上面是否有指定的標(biāo)簽類型

*

* @param args

*/

public static void main(String[] args) throws Exception {

Class c = User.class;

// 說明:annotation也是一種類型

// Class a=MyAnn.class;

if (c.isAnnotationPresent(MyAnn.class)) {

System.out.println("hello");

MyAnn ann = c.getAnnotation(MyAnn.class);

System.out.println(ann.name());

System.out.println(Arrays.toString(ann.names()));

System.out.println(ann.resetDay());

OtherAnn other = ann.other();

System.out.println("other " + other.value());

} else {

System.out.println("fck");

}

Method m = c.getDeclaredMethod("getName");

if (m.isAnnotationPresent(MyAnn.class)) {

System.out.println("方法上面有標(biāo)簽");

}

}

/**

* @SuppressWanings:去掉警告,(去掉警告的類型寫在后面括號里面) 標(biāo)簽有自己定義的能放置的位置

*/

@SuppressWarnings(value = "deprecation")

public void dateTest() {

Date d = new Date();

System.out.println(d.toLocaleString());

AnnotationDemo dd = new AnnotationDemo();

dd.someThing();

}

/**

* 標(biāo)簽里面可以有值, 1,一個常量值 2,一個數(shù)組

*

* @Deprecated:方法過時

*/

@SuppressWarnings({ "rawtypes", "unused" })

@Deprecated

public void someThing() {

List a = new ArrayList();

}

/**

* 注釋一個標(biāo)簽。這個標(biāo)簽沒有參數(shù)值

*

* @Override:代表當(dāng)前方法是覆蓋一個父類的方法

*/

@Override()

public String toString() {

return super.toString();

}

}

package cd.itcast.day2;

import java.lang.annotation.ElementType;

/**

* 自定義一個注釋

* @author Administrator

*

* @Retention:規(guī)定定義的這個標(biāo)簽保留到什么時候

* @Target:規(guī)定定義的這個標(biāo)簽?zāi)芗虞d哪些位置

* ANNOTATION_TYPE:標(biāo)簽上面

* Constructor:構(gòu)造器上面

* Field:字段

* Local variable:局部變量

* METHOD:方法/方法的返回類型

* PACKAGE:包

* Parmater:方法參數(shù)

* TYPE:類/接口/枚舉

*/

@Target({ElementType.METHOD,ElementType.TYPE})

@Retention(RetentionPolicy.RUNTIME)

public @interface MyAnn {

/**

* 在標(biāo)簽里面加參數(shù) 類型 屬性名稱() [default 類型的值]

* 注意:如果在標(biāo)簽里面僅有value這個屬性要填,在使用的時候就可以忽略不寫

*/

String name() default "itcast";

String[] names() default {};

String value();

WeekDays resetDay();

OtherAnn other();

}

package cd.itcast.day2;

public @interface OtherAnn {

String value();

}

總結(jié)

以上是生活随笔為你收集整理的java annotation list_java-注解annotation的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。