Если вы хотите полностью реализовать собственную реализацию clone()
, все должно быть в порядке. Однако, если вы хотите использовать Object.clone () в какой-то момент, я бы порекомендовал
public interface PublicCloneable<I> extends Cloneable {
public I clone();
}
и внутренняя реализация:
public static class MyClass implements PublicCloneable<MyClass> {
public MyClass clone() {
try {
return (MyClass)super.clone(); // Or do whatever you need here
} catch (CloneNotSupportedException e) {
// Always supported
}
}
Я не был уверен, что он скомпилируется, но я попытался, и, кажется, все в порядке.
Пробег может меняться, конечно.