最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

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

1.注解類

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

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

public class WorkService {
 
	private static Logger logger = LoggerFactory.getLogger(WorkService.class);
 
	@Item("1001")
	public int getItem1001Info(GirlVo girl) {
 
		logger.info("getItem1001Info輸出:");
		logger.info(girl.toString());
		return 1;
	}
	@Item("1002")
	public int getItem1002Info(GirlVo girl) {
 
		logger.info("getItem1002Info輸出:");
		logger.info(girl.toString());
		return 1;
	}
	@Item("1003")
	public int getItem1003Info(GirlVo girl) {
		logger.info("getItem1003Info輸出:");
		logger.info(girl.toString());
		return 1;
	}
	@Item("1004")
	public int getItem1004Info(GirlVo girl) {
		logger.info("getItem1004Info輸出:");
		logger.info(girl.toString());
		return 1;
	}
	@Item("1005")
	public int getItem1005Info(GirlVo girl) {
		logger.info("getItem1005Info輸出:");
		logger.info(girl.toString());
		return 1;
	}
	@Item("1006")
	public int getItem1006Info(GirlVo girl) {
		logger.info("getItem1006Info輸出:");
		logger.info(girl.toString());
		return 1;
	}
}

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

public class GirlVo implements Serializable {
 
	private static final long serialVersionUID = -8545755852948661858L;
	/**ID號(hào)*/
	private String girlId;
	/**姓名*/
	private String girlName;
	/**年齡*/
	private Long age;
	/**身高*/
	private Double height;
	/**罩杯*/
	private String cupSize;
	public String getGirlId() {
		return girlId;
	}
	public void setGirlId(String girlId) {
		this.girlId = girlId;
	}
	public String getGirlName() {
		return girlName;
	}
	public void setGirlName(String girlName) {
		this.girlName = girlName;
	}
	public long getAge() {
		return age;
	}
	public void setAge(long age) {
		this.age = age;
	}
	public double getHeight() {
		return height;
	}
	public void setHeight(double height) {
		this.height = height;
	}
	public String getCupSize() {
		return cupSize;
	}
	public void setCupSize(String cupSize) {
		this.cupSize = cupSize;
	}
 
	@Override
	public String toString() {
		
		return "GirlVo [girlId=" + girlId
				+",girlName=" + girlName
				+",age=" + age
				+",height=" + height
				+",cupSize=" + cupSize
				+"]";
	}
}

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

		 List<Method> methods = MethodUtils.getMethodsListWithAnnotation(clazz,Item.class);
		 for (Method method : methods) {
			 for (Annotation annotation : method.getDeclaredAnnotations()) {
				 if (annotation instanceof Item){
					 String code = ((Item) annotation).value();
					 if (Objects.equals(item, code)){
						 try {	
							logger.info("注解號(hào):" + code +" 執(zhí)行開始...");
							method.invoke(clazz.newInstance(), girlVo);
							logger.info("注解號(hào):" + code +" 執(zhí)行結(jié)束...");
						} catch (Exception e) {
							e.printStackTrace();
							logger.info("拋異常...");
						}
					 }
				 }
			 }
		 }
 
	}
 
}

5.main方法測試類

public class TestAnnotation {
	
	private static Logger logger = LoggerFactory.getLogger(TestAnnotation.class);
	 
	public static void main(String []args) throws ClassNotFoundException{
		logger.info("測試開始......");
		HashMap<String,Object> map = (HashMap<String,Object>) getData();
		/**遍歷hashMap*/
		for(Entry<String,Object> entry : map.entrySet()){
			String item = entry.getKey();
			GirlVo girlVo = (GirlVo) entry.getValue();
			ReflectCallMethodAnnotation.annotationMethod(item,girlVo);
		}
		
		logger.info("測試結(jié)束......");
	}
 
 
	public static Map getData() {
 
		HashMap<String ,Object> data = new HashMap();
		 
		GirlVo girlVo1 = new GirlVo();
		girlVo1.setGirlId("1001");
		girlVo1.setGirlName("張一");
		girlVo1.setAge(27);
		girlVo1.setHeight(169);
		girlVo1.setCupSize("F");
		
		GirlVo girlVo2 = new GirlVo();
		girlVo2.setGirlId("1002");
		girlVo2.setGirlName("王二");
		girlVo2.setAge(29);
		girlVo2.setHeight(175);
		girlVo2.setCupSize("B");
		
		GirlVo girlVo3 = new GirlVo();
		girlVo3.setGirlId("1003");
		girlVo3.setGirlName("劉五");
		girlVo3.setAge(24);
		girlVo3.setHeight(160);
		girlVo3.setCupSize("B");
		
		GirlVo girlVo4 = new GirlVo();
		girlVo4.setGirlId("1004");
		girlVo4.setGirlName("陳六");
		girlVo4.setAge(21);
		girlVo4.setHeight(168);
		girlVo4.setCupSize("C");
		
		GirlVo girlVo5 = new GirlVo();
		girlVo5.setGirlId("1005");
		girlVo5.setGirlName("趙七");
		girlVo5.setAge(25);
		girlVo5.setHeight(169);
		girlVo5.setCupSize("C");
		
		GirlVo girlVo6 = new GirlVo();
		girlVo6.setGirlId("1006");
		girlVo6.setGirlName("張八");
		girlVo6.setAge(26);
		girlVo6.setHeight(165);
		girlVo6.setCupSize("A");
		
		data.put("1001", girlVo1);
		data.put("1002", girlVo2);
		data.put("1003", girlVo3);
		data.put("1004", girlVo4);
		data.put("1005", girlVo5);
		data.put("1006", girlVo6);
		
		return data;
	}
 
}

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

相關(guān)文章

  • Java項(xiàng)目安全處理方法

    Java項(xiàng)目安全處理方法

    這篇文章主要介紹了Java項(xiàng)目安全處理方法,URL中參數(shù)顯示,sql拼接問題,需要的朋友可以參考下
    2017-09-09
  • springboot 使用Spring Boot Actuator監(jiān)控應(yīng)用小結(jié)

    springboot 使用Spring Boot Actuator監(jiān)控應(yīng)用小結(jié)

    本篇文章主要介紹了springboot 使用Spring Boot Actuator監(jiān)控應(yīng)用小結(jié),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-02-02
  • 詳解Java中的鎖Lock和synchronized

    詳解Java中的鎖Lock和synchronized

    鎖是Java并發(fā)編程中最重要的同步機(jī)制,Java提供了種類豐富的鎖,每種鎖因其特性的不同,在適當(dāng)?shù)膱鼍跋履軌蛘宫F(xiàn)出非常高的效率。本文將詳細(xì)介紹Lock和synchronized
    2021-06-06
  • 利用Java判斷一個(gè)字符串是否包含某個(gè)字符

    利用Java判斷一個(gè)字符串是否包含某個(gè)字符

    在Java編程中,字符串操作是日常開發(fā)的常見任務(wù),涉及判斷、查找、替換等多種操作,文章介紹了如何在Java中判斷字符串是否包含某字符,提供了使用contains方法和字符數(shù)組遍歷兩種基礎(chǔ)方法,需要的朋友可以參考下
    2024-11-11
  • Java并發(fā)程序入門介紹

    Java并發(fā)程序入門介紹

    這篇文章主要介紹了Java并發(fā)程序入門 ,需要的朋友可以參考下
    2015-03-03
  • SpringAOP實(shí)現(xiàn)日志收集管理功能(步驟詳解)

    SpringAOP實(shí)現(xiàn)日志收集管理功能(步驟詳解)

    這篇文章主要介紹了SpringAOP實(shí)現(xiàn)日志收集管理功能,本文分步驟通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-03-03
  • Java報(bào)錯(cuò):UnsupportedOperationException in Collections的解決方案

    Java報(bào)錯(cuò):UnsupportedOperationException in Collection

    在Java編程中,UnsupportedOperationException是一種常見的運(yùn)行時(shí)異常,通常在試圖對不支持的操作執(zhí)行修改時(shí)發(fā)生,它表示當(dāng)前操作不被支持,本文將深入探討UnsupportedOperationException的產(chǎn)生原因,并提供具體的解決方案和最佳實(shí)踐,需要的朋友可以參考下
    2024-06-06
  • 深入理解final變量的初始化

    深入理解final變量的初始化

    本篇文章是對final變量的初始化進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-06-06
  • Java實(shí)現(xiàn)飛機(jī)航班管理系統(tǒng)的思路詳解

    Java實(shí)現(xiàn)飛機(jī)航班管理系統(tǒng)的思路詳解

    這篇文章主要介紹了Java實(shí)現(xiàn)飛機(jī)航班管理系統(tǒng)的思路詳解,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-07-07
  • Spring的懶加載機(jī)制原理和配置詳解

    Spring的懶加載機(jī)制原理和配置詳解

    這篇文章主要介紹了Spring的懶加載機(jī)制原理和配置詳解,Spring提供了懶加載機(jī)制,所謂的懶加載機(jī)制就是可以規(guī)定指定的bean不在啟動(dòng)時(shí)立即創(chuàng)建,而是在后續(xù)第一次用到時(shí)才創(chuàng)建,從而減輕在啟動(dòng)過程中對時(shí)間和內(nèi)存的消耗,需要的朋友可以參考下
    2023-10-10

最新評論

叙永县| 雷州市| 云浮市| 涞水县| 瑞昌市| 二连浩特市| 绥芬河市| 禹城市| 潼南县| 宁阳县| 杂多县| 竹溪县| 北票市| 虎林市| 泸西县| 西乌珠穆沁旗| 临漳县| 涞源县| 左云县| 五常市| 龙井市| 浙江省| 调兵山市| 右玉县| 类乌齐县| 曲松县| 岚皋县| 汝城县| 广水市| 清苑县| 桃江县| 澳门| 天镇县| 荃湾区| 舞阳县| 库伦旗| 广汉市| 盐城市| 灵山县| 巴马| 铁力市|