激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

香港云服务器
服務(wù)器之家 - 編程語言 - Java教程 - 使用java的注解(用在java類的方法上的注解)方法

使用java的注解(用在java類的方法上的注解)方法

2019-06-20 15:53zhangbeizhen18 Java教程

這篇文章主要介紹了使用java的注解(用在java類的方法上的注解)方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

場景:根據(jù)方法上的注解,通過java反射方式找到需要執(zhí)行的的方法。

1.注解類

1/**注解作用在方法上*/
2@Target({ElementType.METHOD})
3/**注解的生命周期一直程序運(yùn)行時(shí)都存在VM運(yùn)行期間保留注解,可以通過反射機(jī)制讀取注解信息*/
4@Retention(RetentionPolicy.RUNTIME)
5/**注解包含在Javadoc中*/
6@Documented
7public @interface Item {
8    String value();
9}

2.在類的方法上使用注解

01public class WorkService {
02  
03    private static Logger logger = LoggerFactory.getLogger(WorkService.class);
04  
05    @Item("1001")
06    public int getItem1001Info(GirlVo girl) {
07  
08        logger.info("getItem1001Info輸出:");
09        logger.info(girl.toString());
10        return 1;
11    }
12    @Item("1002")
13    public int getItem1002Info(GirlVo girl) {
14  
15        logger.info("getItem1002Info輸出:");
16        logger.info(girl.toString());
17        return 1;
18    }
19    @Item("1003")
20    public int getItem1003Info(GirlVo girl) {
21        logger.info("getItem1003Info輸出:");
22        logger.info(girl.toString());
23        return 1;
24    }
25    @Item("1004")
26    public int getItem1004Info(GirlVo girl) {
27        logger.info("getItem1004Info輸出:");
28        logger.info(girl.toString());
29        return 1;
30    }
31    @Item("1005")
32    public int getItem1005Info(GirlVo girl) {
33        logger.info("getItem1005Info輸出:");
34        logger.info(girl.toString());
35        return 1;
36    }
37    @Item("1006")
38    public int getItem1006Info(GirlVo girl) {
39        logger.info("getItem1006Info輸出:");
40        logger.info(girl.toString());
41        return 1;
42    }
43}

3.實(shí)體類,作為參數(shù)傳遞

01public class GirlVo implements Serializable {
02  
03    private static final long serialVersionUID = -8545755852948661858L;
04    /**ID號*/
05    private String girlId;
06    /**姓名*/
07    private String girlName;
08    /**年齡*/
09    private Long age;
10    /**身高*/
11    private Double height;
12    /**罩杯*/
13    private String cupSize;
14    public String getGirlId() {
15        return girlId;
16    }
17    public void setGirlId(String girlId) {
18        this.girlId = girlId;
19    }
20    public String getGirlName() {
21        return girlName;
22    }
23    public void setGirlName(String girlName) {
24        this.girlName = girlName;
25    }
26    public long getAge() {
27        return age;
28    }
29    public void setAge(long age) {
30        this.age = age;
31    }
32    public double getHeight() {
33        return height;
34    }
35    public void setHeight(double height) {
36        this.height = height;
37    }
38    public String getCupSize() {
39        return cupSize;
40    }
41    public void setCupSize(String cupSize) {
42        this.cupSize = cupSize;
43    }
44  
45    @Override
46    public String toString() {
47         
48        return "GirlVo [girlId=" + girlId
49                +",girlName=" + girlName
50                +",age=" + age
51                +",height=" + height
52                +",cupSize=" + cupSize
53                +"]";
54    }
55}

4.反射調(diào)用方法注解的類

01         List<Method> methods = MethodUtils.getMethodsListWithAnnotation(clazz,Item.class);
02         for (Method method : methods) {
03             for (Annotation annotation : method.getDeclaredAnnotations()) {
04                 if (annotation instanceof Item){
05                     String code = ((Item) annotation).value();
06                     if (Objects.equals(item, code)){
07                         try
08                            logger.info("注解號:" + code +" 執(zhí)行開始...");
09                            method.invoke(clazz.newInstance(), girlVo);
10                            logger.info("注解號:" + code +" 執(zhí)行結(jié)束...");
11                        } catch (Exception e) {
12                            e.printStackTrace();
13                            logger.info("拋異常...");
14                        }
15                     }
16                 }
17             }
18         }
19  
20    }
21  
22}

5.main方法測試類

01public class TestAnnotation {
02     
03    private static Logger logger = LoggerFactory.getLogger(TestAnnotation.class);
04      
05    public static void main(String []args) throws ClassNotFoundException{
06        logger.info("測試開始......");
07        HashMap<String,Object> map = (HashMap<String,Object>) getData();
08        /**遍歷hashMap*/
09        for(Entry<String,Object> entry : map.entrySet()){
10            String item = entry.getKey();
11            GirlVo girlVo = (GirlVo) entry.getValue();
12            ReflectCallMethodAnnotation.annotationMethod(item,girlVo);
13        }
14         
15        logger.info("測試結(jié)束......");
16    }
17  
18  
19    public static Map getData() {
20  
21        HashMap<String ,Object> data = new HashMap();
22          
23        GirlVo girlVo1 = new GirlVo();
24        girlVo1.setGirlId("1001");
25        girlVo1.setGirlName("張一");
26        girlVo1.setAge(27);
27        girlVo1.setHeight(169);
28        girlVo1.setCupSize("F");
29         
30        GirlVo girlVo2 = new GirlVo();
31        girlVo2.setGirlId("1002");
32        girlVo2.setGirlName("王二");
33        girlVo2.setAge(29);
34        girlVo2.setHeight(175);
35        girlVo2.setCupSize("B");
36         
37        GirlVo girlVo3 = new GirlVo();
38        girlVo3.setGirlId("1003");
39        girlVo3.setGirlName("劉五");
40        girlVo3.setAge(24);
41        girlVo3.setHeight(160);
42        girlVo3.setCupSize("B");
43         
44        GirlVo girlVo4 = new GirlVo();
45        girlVo4.setGirlId("1004");
46        girlVo4.setGirlName("陳六");
47        girlVo4.setAge(21);
48        girlVo4.setHeight(168);
49        girlVo4.setCupSize("C");
50         
51        GirlVo girlVo5 = new GirlVo();
52        girlVo5.setGirlId("1005");
53        girlVo5.setGirlName("趙七");
54        girlVo5.setAge(25);
55        girlVo5.setHeight(169);
56        girlVo5.setCupSize("C");
57         
58        GirlVo girlVo6 = new GirlVo();
59        girlVo6.setGirlId("1006");
60        girlVo6.setGirlName("張八");
61        girlVo6.setAge(26);
62        girlVo6.setHeight(165);
63        girlVo6.setCupSize("A");
64         
65        data.put("1001", girlVo1);
66        data.put("1002", girlVo2);
67        data.put("1003", girlVo3);
68        data.put("1004", girlVo4);
69        data.put("1005", girlVo5);
70        data.put("1006", girlVo6);
71         
72        return data;
73    }
74  
75}

以上所述是小編給大家介紹的使用java的注解(用在java類的方法上的注解)方法詳解整合,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時(shí)回復(fù)大家的。在此也非常感謝大家對服務(wù)器之家網(wǎng)站的支持!

延伸 · 閱讀

精彩推薦
319
主站蜘蛛池模板: 欧美精品38videos性欧美 | 国产精品久久久在线观看 | 亚洲国产精品久久久 | 国产精品久久久久久影院8一贰佰 | 99影视在线视频免费观看 | 国产成人精品一区二区三区电影 | 日韩黄在线观看 | 国产一区二区高清在线 | 毛片一级视频 | 精品国产91一区二区三区 | 国产1区2 | 久久人人爽人人爽人人片av高请 | 欧美另类综合 | 色人久久 | 欧美成人免费香蕉 | 精品爱爱 | 久久精品re | 亚洲欧美在线看 | 午夜精品久久久久久中宇 | 日韩精品中文字幕一区 | 日日草夜夜 | av一道本 | 国产高潮好爽受不了了夜色 | 欧美伦理一区二区 | 91短视频在线观看免费最新 | 国产精品自在线拍 | 久草久视频 | 一区二区三区黄色 | 羞羞视频免费网站 | 黄色特级视频 | 在线观看精品视频 | 欧美爱爱视频免费看 | 成人av一区二区免费播放 | 成人免费av在线 | 久久精品亚洲精品国产欧美kt∨ | 久久精品一区二区三区四区五区 | 国产瑟瑟视频 | 欧美精品一区二区三区在线 | mmmwww| 鲁丝一区二区二区四区 | 久久这里只有精品1 |