3 回答
TA贡献1836条经验 获得超13个赞
BaseConfiguration如果对象实例通过instanceof检查,您可以在转换为之后调用它:
if (o instanceof BaseConfiguration) {
((BaseConfiguration) o).clone(someDictionary, Foo.class);
} else {
throw new AssertionError("Does not extend BaseConfiguration");
}
TA贡献1884条经验 获得超4个赞
如果所有配置都应该是可克隆的,只需将其添加到Configuration.
如果不是全部 - 做类似的事情
interface CloneableConfiguration extends Configuration {
public <T> T clone(Dictionary<String, Object> properties, Class<T> clazz);
}
然后
public class XMLConfiguration extends BaseConfiguration implements CloneableConfiguration {
...
}
但永远不要在你的陈述中使用具体的实现。
TA贡献1799条经验 获得超6个赞
投射你的Configuration对象。由于 API 不在您手中,因此请使用instanceof安全检查
Configuration conf = ConfigurationAdmin.getConfiguration();
if(conf instanceof BaseConfiguration) {
BaseConfiguration base = (BaseConfiguration) conf;
base.clone();
}
else {
// throw an exception of log an error
}
添加回答
举报