Re: cloning
On 01/16/2012 10:27 AM, albert kao wrote:
I want to clone the following class so is the following code ok?
public class TestImpl implements Serializable {
'private static final long serialVersionUID'?
Have you studied up on 'Serializable'? It's a dangerous tool in the hands of
the sorcerer's apprentice.
<http://java.sun.com/docs/books/effective/>
Chapter 11, "Serialization"
Yes, he gives it an entire chapter.
private int id = 0;
You don't need to initialize 'id' to zero twice.
What's that? Well, zero is already the default value. Then you assign zero
to the variable in a second, explicit initialization. That's twice.
Having said that, there are sometimes reasons for an explicit initialization
of a default value, and it's required for 'final' variables.
private java.sql.Timestamp createDateTime;
import directives, anyone?
private java.sql.Date expiryDate;
I agree that you don't want an import for 'java.sql.Date'.
private java.math.BigDecimal amount;
Good choice of type.
private java.sql.Timestamp deleteTimestamp;
// other methods
// ...
Really good variable names, by the way.
@Override
public Object clone() throws CloneNotSupportedException {
return (TestImpl)super.clone();
}
}
I suggest that either you eliminate the cast or have a covariant return type.
--
Lew
Honi soit qui mal y pense.
http://upload.wikimedia.org/wikipedia/commons/c/cf/Friz.jpg