この質問は非常に単純ですが、私は答えがそうであるとは思わないので、達成したいことをインターネット上で何も見つけられていません。 GenericModelとGenericBeanの2つのクラスがあります。 Thosクラスにはマップが含まれています。コードは以下の通りです:どのようにオブジェクトをJavaでSerializableに変換するのですか
public class GenericBean implements IsSerializable {
Map<String, Serializable> properties = new HashMap<String, Serializable>();
public Object getProperty(String key){
return properties.get(key);
}
public void setProperty(String key, Serializable value){
properties.put(key, value);
}
public Map<String, Serializable> getProperties() {
return properties;
}
public void setProperties(Map<String, Serializable> properties) {
this.properties = properties;
}
}
秒:
public class GenericModel {
private final Logger log = LoggerFactory.getLogger(GenericModel.class);
public Map<String, Object> getProperties() {
return properties;
}
public Object getProperty(String key) {
return properties.get(key);
}
public void setProperty(String key, Object value) {
properties.put(key, value);
}
public void setProperties(Map<String, Object> properties) {
this.properties = properties;
}
private Map<String, Object> properties = new HashMap<String, Object>();
}
私が達成したいどのような一般的な豆のマップのプロパティでGenericModelのマップのプロパティをコピーすることです。
コンパイルエラーが発生します。Map<String,Object>
はMap<String,Serializable>
と互換性がありません。どうすればよいですか?
使用鋳造を、そしてすべての値が実際に直列化可能であることを祈る: すべての非直列化可能な特性は、この場合には無視されます。 https://docs.oracle.com/javase/tutorial/java/IandI/subclasses.html –
'Map properties'を使用するのは解決策ですか? 'setProperty'メソッドを使うときにキャストしてキャストする –
azro
オブジェクトマップにシリアライズ可能ではないアイテムが含まれていると、どうなると思いますか?マップはお互いに互換性がないため、瞬間的な解決策はありません。あなたはいつも、これらの辺のケースをどうするかを決める必要があります(ドロップする、例外を投げる、...)。 – basst314