繁体   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