3 回答

TA貢獻(xiàn)1836條經(jīng)驗(yàn) 獲得超13個(gè)贊
BaseConfiguration如果對(duì)象實(shí)例通過(guò)instanceof檢查,您可以在轉(zhuǎn)換為之后調(diào)用它:
if (o instanceof BaseConfiguration) {
((BaseConfiguration) o).clone(someDictionary, Foo.class);
} else {
throw new AssertionError("Does not extend BaseConfiguration");
}

TA貢獻(xiàn)1884條經(jīng)驗(yàn) 獲得超4個(gè)贊
如果所有配置都應(yīng)該是可克隆的,只需將其添加到Configuration.
如果不是全部 - 做類(lèi)似的事情
interface CloneableConfiguration extends Configuration {
public <T> T clone(Dictionary<String, Object> properties, Class<T> clazz);
}
然后
public class XMLConfiguration extends BaseConfiguration implements CloneableConfiguration {
...
}
但永遠(yuǎn)不要在你的陳述中使用具體的實(shí)現(xiàn)。

TA貢獻(xiàn)1799條經(jīng)驗(yàn) 獲得超6個(gè)贊
投射你的Configuration對(duì)象。由于 API 不在您手中,因此請(qǐng)使用instanceof安全檢查
Configuration conf = ConfigurationAdmin.getConfiguration();
if(conf instanceof BaseConfiguration) {
BaseConfiguration base = (BaseConfiguration) conf;
base.clone();
}
else {
// throw an exception of log an error
}
添加回答
舉報(bào)