国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術(shù)文章
文章詳情頁

面向?qū)ο缶幊?- java動態(tài)加載和類型轉(zhuǎn)換問題?

瀏覽:132日期:2023-12-28 11:02:56

問題描述

我有 A1.java, A2.java, A3.java ... A10.java 等十個類(也許更多);

他們里面都有一個public static String getResponse()的方法,不過里面所做的事情和回復的字符串都不一樣;

我還有一個變量 String name = 'A1';,不確定變量里面的到底是哪一個類的名字,不過肯定是這是個類里面的一個。

我想當我收到這個name變量之后動態(tài)調(diào)用所對應(yīng)的類的getResponse方法,而且不想用if-else一個個判斷。

試了下下面的代碼,forName回復的是一個class對象,好像不能強制類型轉(zhuǎn)換。能轉(zhuǎn)換也不知道到底轉(zhuǎn)換成哪一個對象,我不想一個個if-else判斷。

String result = Class.forName(name).getResponse();我應(yīng)該怎么做呢? 有沒有好的建議?

問題解答

回答1:

這個就是 Java 反射的運用吧.首先你需要通過 Class.forName 獲取一個類的 Class 對象, 然后通過這個 Class 對象的 getMethod 方法獲取指定的方法對象(Method), 最后通過這個 Method 對象來調(diào)用此方法.用源碼表示:

public class Test { public static String getResponse() {return 'This is Test.getResponse'; } public static void main(String[] args) throws Exception {String name = 'com.test.Test';String methodName = 'getResponse';Class<?> threadClazz = Class.forName(name);Method method = threadClazz.getDeclaredMethod(methodName);System.out.println(method.invoke(null)); }}回答2:

class.forName獲取的就是類對象。然后你可以通過這個類對象的getMethod方法獲取對應(yīng)的方法。然后invoke對應(yīng)的方法

回答3:

能否讓這10多個類都實現(xiàn)一個接口,比如

public interface A0 { public String getResponse();}

然后A1、A2...都implements A0,并實現(xiàn)getResponse(只是不能定義成static了)。

然后就能這么寫了:

String result = ((A0) Class.forName(name).newInstance()).getResponse();回答4:

除了反射以外,用Spring也可以。根絕獲得的字符串去get一個bean,然后調(diào)用方法。

標簽: java
相關(guān)文章:
主站蜘蛛池模板: 最新怡红院全部视频在线 | 久久精品a亚洲国产v高清不卡 | 亚洲欧美极品 | 美女黄页在线观看 | 日本欧美中文 | 91精品视品在线播放 | 免费在线一区二区三区 | 成人久久18网站 | 国产精品成久久久久三级 | 欧美日韩视频一区二区在线观看 | 久久综合中文字幕一区二区三区 | 国产成人精品日本亚洲语音1 | 国产成年人在线观看 | 免费中文字幕一级毛片 | 久久这里一区二区精品 | 国产免费久久 | 亚洲乱人伦精品图片 | 清纯偷拍精品视频在线观看 | 欧美成人艳星在线播放 | 久久成人免费大片 | 亚洲男人天堂av | 欧美人一级淫片a免费播放 欧美人与z0z0xxxx | 美女张开腿让人捅 | 一区二区在线欧美日韩中文 | 国内免费自拍视频 | 国内精品福利视频 | 中文字幕在线一区二区在线 | 国产精品久久久久久久免费大片 | 亚洲国产精品久久 | 真实国产乱人伦在线视频播放 | 免费中文字幕 | 亚洲欧洲日产国码二区首页 | 欧美大胆一级视频 | 欧美大尺度aaa级毛片 | 一级特色大黄美女播放网站 | 国内欧美一区二区三区 | 美女张开腿让男人捅爽 | 高清在线亚洲精品国产二区 | 她也啪在线视频精品网站 | 男人好大好硬好爽免费视频 | 欧美日本俄罗斯一级毛片 |