簡體   English   中英

基於參數的通用轉換

[英]generic cast based on param

我需要一個基於方法參數(className)的“通用”轉換。 像這樣的東西:

void save(DomainObject o, String className) {
    doSomething((className) o);
}

所以我想將“o”直接轉換為“className”類的對象。

我知道如何通過類名字符串實例化一個對象,但是否有任何簡單的可能性來管理我的轉換問題?

在您的情況下,您似乎已經將類名作為String ,在這種情況下, ManoDestra 的答案將是合適的。 作為替代方案,您也可以使用這種方法:

void save(DomainObject o, Class<?> type){       
    doSomething( type.cast(o) );
}

然后你會這樣稱呼它:

save( myObject, Integer.class );

您可以使用反射來做到這一點...

void save(DomainObject o, String className) {
    Class<?> clazz = Class.forName(className);
    doSomething(clazz.cast(o));
}

您需要處理潛在的類轉換異常,但我相信您可以解決這個問題:)

有關更多詳細信息,請參閱此回復: https : //stackoverflow.com/a/2127384/5969411

暫無
暫無

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

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