さまざまなJDKクラスのソースを参照しながら、クラスがjava.io.Serializable
インターフェイスを実装したときに、通常は完全な名前で参照され、インポートを使用しないことがわかりました。JDKクラスで、Serializableが完全修飾名で宣言されているのはなぜですか?
public class ArrayList<E> extends AbstractList<E>
implements List<E>, RandomAccess, Cloneable, java.io.Serializable
具体的な理由はありますか?これは古いJDK 1.0の非推奨クラスsunw.io.Serializable
の存在と関係していますか?
あなたは 'sunw.io.Serializable'で正しいと思っていますので、作者は' java.io.Serializable'を意味することを明確にしたかったのです。例えば、 'Cloneable'はJDKに同じ名前の相手を持っていないので、無意味です。 –
そのコードの著者に質問してください。私の経験では、Serializableの完全修飾名を使用するのは普通のことではありません。 –
@Steve Kuo:あなたはJosh Blochに電子メールを書くべきだと言っていますか? :) – Natix