在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問(wèn)答/Java/ java反射調(diào)用返回類型問(wèn)題

java反射調(diào)用返回類型問(wèn)題

JAVA類中(假設(shè)為A)反射調(diào)用某目錄下的class文件,然后返回一個(gè)自定義的類(假設(shè)是People吧)。再A中用強(qiáng)制轉(zhuǎn)換把這個(gè)類轉(zhuǎn)換為People,再eclipse下運(yùn)行沒(méi)有問(wèn)題。但是把工程達(dá)成jar包后,運(yùn)行報(bào)類型轉(zhuǎn)換錯(cuò)誤。
12.21日問(wèn)題描述更新:
項(xiàng)目是一個(gè)spring boot的工程,其中有個(gè)方法接受傳來(lái)的參數(shù)更具參數(shù)判斷調(diào)用什么類
@RequestMapping("/MyFunction")
public A function(String param){

/**
*前面解析param,找到需要執(zhí)行的代碼并轉(zhuǎn)為map形式
**/
Class<?> cls=***.loaderClass(classCode);//這里是分裝的類加載器,classCode是根據(jù)參數(shù)解析出來(lái)的
Object obj=cls.newInstance();
Method method=cls.getMethod("f",Map.class);
A=(A)method.invoke(obj,map); //**注釋【1】**

}

代碼大概是這樣的意思,然后.class文件是放在工程里自己創(chuàng)建的一個(gè)文件夾?,F(xiàn)在再Eclipse里啟動(dòng)是沒(méi)有問(wèn)題的,但是把springboot程序打成一個(gè)jar后放在cmd中啟動(dòng),就會(huì)有一個(gè)再注釋【1】中的強(qiáng)制轉(zhuǎn)換錯(cuò)誤。我分別發(fā)現(xiàn)再Eclipse中A.class.hashCode和method.getGenericReturnType.hashCode是一樣的,而再cmd中二者是不一樣的。
同事說(shuō)以前的工程直接打jar包是沒(méi)有這種問(wèn)題的,現(xiàn)在換了spring boot難道是這個(gè)的原因?

回答
編輯回答
糖豆豆

maven打包會(huì)影響編譯。
IDE是直接編譯

2018年3月17日 03:14