我觉得我应该知道这一点,但当被问到时无法真正解释。我有一个方法:
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 中实现代码,但程序按预期工作。有没有一种简单的方法来解释发生了什么?