我的問題不在於瞭解Serializable接口的使用技術理解。 這些問題的答案已經解釋[1] & [2]中others爲什麼我們使用前綴「java.io.」每次都不導入java.io.Serializable接口
我的問題是從的觀點語法點。
一邊看Collection接口及其子接口的源代碼,我注意到大部分接口實現Cloneable
和java.io.Serializable
如下圖所示:
public class TreeSet<E> extends AbstractSet<E>
implements NavigableSet<E>, Cloneable, java.io.Serializable{
...
}
public class LinkedHashSet<E>
extends HashSet<E>
implements Set<E>, Cloneable, java.io.Serializable {
...
}
public class HashSet<E>
extends AbstractSet<E>
implements Set<E>, Cloneable, java.io.Serializable {
...
}
...等等
我也注意到:
Collection
接口,TreeSet
LinkedHashSet
等屬於package java.util;
Cloneable
接口屬於package java.lang;
Serializable
屬於package java.io;
現在的問題是,我們爲什麼要添加前綴java.io
Serializable
之前(如上圖所示),並在Collection接口做了不導入import java.io.Serializable;
。
由@Kayaman建議可以真正區別於'sunw.io.Serializable'(在[這個答案](http:// stackoverflow。 com/a/27963276/1851302)) – KNU
這可能就是爲什麼,儘管'sunw.io.Serializable'在很多年前就被棄用了,我當然認爲當我看到Serializable時它是'java.io .Serializable'。 –