title: Why people are so afraid of using clone() (on collection and JDK classes)?
body: <p>A number of times I've argued that using <code>clone()</code> isn't such a bad practice. Yes, I know the arguments. <a href="http://www.artima.com/intv/bloch13.html" rel="noreferrer">Bloch said</a> it's bad. He indeed did, but he said that implementing <code>clone()</code> is bad. Using clone on the other hand, especially if it is implemented correctly by a trusted library, such as the JDK, is OK.</p>
  
  <p>Just yesterday I had a discussion about <a href="https://stackoverflow.com/questions/2592985/arraylist-shallow-copy-iterate-or-clone/2593004#2593004">an answer of mine</a> that merely suggests that using <code>clone()</code> for <code>ArrayList</code> is OK (and got no upvotes for that reason, I guess).</p>
  
  <p>If we look at the <code>@author</code> of <code>ArrayList</code>, we can see a familiar name - Josh Bloch. So <code>clone()</code> on <code>ArrayList</code> (and other collections) is perfectly fine (just look at their implementations).</p>
  
  <p>Same goes for <code>Calendar</code> and perhaps most of the <code>java.lang</code> and <code>java.util</code> classes.</p>
  
  <p>So, give me a reason <em>why not to use</em> <code>clone()</code> with JDK classes?</p>