Properties properties = AppConfigurationManager.getInstance().getProperties(ObjectContainer.class);
プロパティを設定するこのコードがあります。
1つのフィールドの検証のためにこれを飾りたいです。
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に渡し、そこで検証を行いますか?
編集:クラスキャスト例外が発生しているのを見ました。
ありがとう。