Javaの1.5 ( 5.0 ) にはCloseableというインターフェースが導入されています。このインターフェース自体は、閉じることができるソースに対して実装されています。宣言されているメソッドは、close()です。Reader や Writer の内部では、リソースへアクセスできる変数に null を代入することによって切り離している場合が多いです。
それに対して、1.0から存在している Cloneable は、インスタンスのコピーを生成できるクラスが実装しています。このインターフェース自体はメソッドは定義していませんが、Objectクラスのclone()をオーバーライドすることによってcloneメソッドが使用できるようになります。Cloneableインターフェースを実装していない場合はcloneメソッドを呼び出しても、例外(CloneNotSupportedException)がスローされます。
さて、見た目はよく似ていますが、使い方はかなり違います。基本的に、よく知られているクラスの中ではCloneableは実装されていない場合が多いので、一度確認してみると良いかと思います。
コメントする