私は親クラスを持っています。問題は、一般化したい静的メソッドがあることです。これを行うベストプラクティスは何ですか?私はいくつかの解決策を考え出しましたが、すべて静的メソッドでは機能しません。静的メソッドの継承
抽象メソッドを実装するためにchildobjectを強制する方法はありますか?
親クラス:
public class Data_object {
public byte[] toByteArray() throws IOException {
return null;
}
public static Data_object fromByteArray(byte[] data){
return null
}
}
子供クラス:
public class ModelObject extends Data_object {
public static Data_object fromByteArray(byte[] data){
ModelObject result = new ModelObject();
//set data from byte arrray
return result;
}
}
おかげ
この場合、メソッドを静的にしたいのはなぜですか? –
静的メソッド抽象メソッドを呼び出すときに呼び出すメソッドの正確なクラスを指定する必要があるため、静的メソッド抽象メソッドを抽象メソッドにすることはできません。あなたは正確に何を達成しようとしていますか? –
彼はまだインスタンスを持っていないので。彼は何らかの種類の非直列化を行っています。そのアイデアは次のとおりです。 writing:object.write(stream); reading:オブジェクト= DataObject.read(ストリーム); –