さて、java.util.Collection インターフェースを実装する動的な 2D 配列を Java で作成しています。通常の と同じ機能を持たせたかったので、配列にそれを実装させましたCollection
。size()
ただし、インターフェイスで整数を返し、2D マトリックスが整数型をオーバーフローする可能性があるため、メソッドを実装できません。
これが私が作ろうとしている私のクラスのスニペットです:
public abstract class AbstractMatrix<E> implements Collection<E>{
@Override
public long size() {
return columns * rows;
}
}
現在、これは機能しません。「戻り値の型は互換性がありませんCollection<E>.size()
」。型を int に変更すると、列 * 行がオーバーフローする可能性があります。
Collection
このように size メソッドをオーバーライドできないことはわかっていますが、インターフェイスを実装している間にメソッドが正しいサイズを返すようにする方法はありますか?
はい、これが非現実的であり、おそらく問題にならないことはわかっていますが、それに対する適切な解決策があるかどうかを知りたいと思っていました.