私はRAW ソケットに関して肯定応答と再送信トランスポート プロトコルを実装しています。そのような場合、 のサブクラスが必要です。メソッドを実装するときは、次のようなものが必要です。SocketImplaccept
protected void accept(SocketImpl s) {
...
s.copy(socket);
}
whereは、すでに初期化されているオブジェクトにコピーする必要がsocketある、既に計算されたオブジェクトです。つまり、 sourceを targetにコピーする変更可能な copy メソッドが必要です。存在することは知っていますが、新しいオブジェクトを返し、必要なのは mutateです。SocketImpl SocketImpls s.copy(socket)socketsObject clone()s
ところで、この場合のパラメーターの変更は壊れた設計だと考える人もいます。Java 標準ライブラリの例はこれだけではありません。of class は別の例です。しかし、これが Sun/Oracle のエンジニアが設計した方法です。なぜこれが悪いデザインなのか知りたいsimplAccept(Socket s)ServerSocket
一見すると、 ;と同等の一般的な浅いtarget.copy(source)場所を提供することには意味があるように思えます。しかし、それは存在しないため (おそらく正当な理由で説明してください)、唯一の方法はカスタムのフィールドごとのコピー メソッドをプログラムすることです。target = souce.clone()target = new TheClass(); target.copy(source)
私は正しいですか?ありがとう。