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