Properties properties = AppConfigurationManager.getInstance().getProperties(ObjectContainer.class);
我有这个填充属性的代码。
我想装饰它以验证一个字段。
public class PropertiesDecorator extends Properties{
public void ValidateFooservHost(){
for(Entry<Object, Object> element : this.entrySet()){
if(element.getKey().toString().equals("ffxserv_host")){
String newHostValue = ffxServHostCheck(element.getValue().toString());
put(element.getKey(), newHostValue);
}
}
}
@Override
public Object setProperty(String name, String value) {
if(name.equals("foo")){
value = fooHostCheck(value);
}
return put(name, value);
}
public String fooHostCheck(String valueFromConfig){
String firstTwoChars = valueFromConfig.substring(0, 2);
if(firstTwoChars.equals("1:")){
return valueFromConfig.substring(2, valueFromConfig.length());
}
return valueFromConfig;
}
}
然而,
PropertiesDecorator properties = (PropertiesDecorator) AppConfigurationManager.getInstance().getProperties(ObjectContainer.class);
这失败了。我没有内容丰富的描述,但它只是说它失败了。没有把握。什么。
我在这里做错了什么?还?
我怎样才能解决这个问题?
或者你会推荐一些不同的东西吗?
我应该使用策略模式吗?将属性传递给 PropertiesDecorator,并在那里进行验证?
编辑:我已经看到我得到了类转换异常。
谢谢。