[英]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.