簡體   English   中英

Java根據字符串名稱動態實例化類

[英]Java to instantiate a class dynamically based on a string name

好的,這已經被問了很多遍了,我已經看過各種答案,但是仍然無法以某種方式解決這個問題。

問題:我有一些5片段(非android家伙請假定類),我需要根據列表中單擊的內容動態實例化這些片段。 我在點擊處理程序中得到了字符串。 我已經方便地命名了片段。 因此,基本上我的一個片段稱為SearchResults.java,單擊相應項將返回“ SearchResults”。 所以我想做類似的事情:

public void onClick(View v) {
Class cls = Class.forname(clickedString)   //clickedString = "SearchResults"
//instantiate it as if it were equal to SearchResults sr = new SearchResults().
}

我只想避免是否要交換案例,而是尋找一種更明智的方法。 我可能會缺少一些非常基本的核心Java概念。 請幫忙。

首先,您需要完全限定的類名稱,即: your.full.class.path.SearchResults ,之后,使用no-args構造函數進行實例化將變得相對容易:

Class<?> cls = Class.forname(clickedString);
SearchResults results = (SearchResults) cls.newInstance();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM