私はこれを知っているべきだと思いますが、尋ねられたときにそれを説明することはできません. 私は方法を持っています:
public <T extends IByteConverter<T>> int write(T obj) throws IOException {
byte[] byteArray = obj.toByteArray();
raFile.write(byteArray);
//keeps track of size of what was written
return byteArray.length;
}
そして私のインターフェース:
interface IByteConverter<T> {
public byte[] toByteArray();
public T fromByteArray(byte[] byteArray);
}
obj.toByteArray() を呼び出すと、プログラムは何をすべきかをどのように認識しますか? クラスのどこに IByteConverter のコードを実際に実装するかはわかりませんが、プログラムは期待どおりに動作します。何が起こっているのかを説明する簡単な方法はありますか?