![]() |
1
3
主要的事实是,这显然不是它应该做的。 在这种情况下,您可能需要一个深度复制;在这种情况下,您可能需要一个浅层复制;在另一种情况下,您可能根本不希望复制实例;可能您希望以这些方式的混合方式复制某个特定类的字段。 另外,添加这个构造函数是另一种方法:在方法数量很重要的环境中(例如,Android的64K DEX限制),你要为你不想要的东西买单。 如果你需要的话,最好允许你做,让它明确。 但是什么 停止 Java有这个吗? 假设您可以手动定义一个复制构造函数,那么让它们自动添加在技术上显然是可行的。 我建议您不能这样做的一个原因是,对于您不希望被复制的类,没有“删除”构造函数的语言机制。
很容易指出您不需要默认的ctor:只需定义您自己的ctor,并使用任何签名。但是对于默认的copy-ctor不能这样做:根据定义,copy-ctor将只具有签名
因此,您必须开始发明额外的机制来删除构造函数——比如说,一个特殊的注释。但这需要对工具进行更改以支持它。 从绝对意义上讲,这不是不可能的,但是要改变语言以添加一个可以在现有语言中实现的特性需要做大量的工作。 |
![]() |
2
3
但确实如此。这是一个方法
因此,你想要做的,可以通过以下方式实现:
|
|
user29759326 · 如何返回递归函数中的最后一个值? 4 月前 |
|
malife89 · 将java中的字符串读取为正确的日期格式 4 月前 |
![]() |
Tim · 在java中,有没有更快的方法将字节数组写入文件? 4 月前 |
![]() |
rudraraj · java中未声明最终变量 5 月前 |
![]() |
Bala Ji · 以下BFS的实施效率如何? 5 月前 |