关于
Arrays.copyOf是否会产生深浅的副本,似乎有很多混乱和不同的意见([1]和其他来源).
该测试表明该副本很深:
String[] sourceArray = new String[] { "Foo" }; String[] targetArray = java.util.Arrays.copyOf( sourceArray,1 ); sourceArray[0] = "Bar"; assertthat( targetArray[0] ).isEqualTo( "Foo" ); // passes
该测试表明该副本较浅:
String[][] sourceArray = new String[][] { new String[] { "Foo" } }; String[][] targetArray = java.util.Arrays.copyOf( sourceArray,1 ); sourceArray[0][0] = "Bar"; assertthat( targetArray[0][0] ).isEqualTo( "Foo" ); // fails
解决方案只是制作了顶层维度的深层副本,但其他维度是浅拷贝?真相是什么?
解决方法
原文地址:https://www.jb51.cc/java/124646.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。