我正在根据RAW 套接字实现肯定确认和重传传输协议,在这种情况下需要一个子类。在实现方法时,我需要这样的东西:SocketImpl
accept
protected void accept(SocketImpl s) {
...
s.copy(socket);
}
哪里是一个必须复制到已经初始化的对象socket
的已经计算的对象。即我需要一个可变的复制方法,它将源复制到目标。我知道存在,但它返回一个新对象,我需要的是 mutate 。SocketImpl
SocketImpl
s
s.copy(socket)
socket
s
Object clone()
s
顺便说一句,你们中的一些人认为在这种情况下改变s
参数是一个错误的设计。它不是 Java 标准库中的唯一示例。implAccept(Socket s)
类ServerSocket
是另一个例子。但这就是 Sun/Oracle 工程师设计它的方式。我想知道为什么这是一个糟糕的设计
乍一看,提供一个通用的 shallow target.copy(source)
wheretarget = souce.clone()
相当于target = new TheClass(); target.copy(source)
;似乎是有道理的。但由于它不存在(可能有充分的理由,请解释)唯一的方法是编写一个自定义的逐字段复制方法。
我对吗?谢谢。