簡體   English   中英

Java中的可序列化接口

[英]Serializable interface in Java

我理解擁有接口的重點是強制實現它的類實現/定義該接口中的所有抽象方法。

但是,在Java中的Object Serialization(轉換為字節流)的過程中,要序列化的對象的類是必須實現Serializable接口的實例。 但是,我看不到定義接口的方法。 那么,是否有一個ZERO方法的接口,如果是的話,甚至是可能的,如果是的話,如果它沒有方法的目的是什么?

Serializable接口是標記接口。 如果類實現它,則運行時系統知道該類是可序列化的。

在現代Java中,現在可以通過注釋實現此效果,但是在定義此接口時它們並不存在。

是的,這樣的界面是可能的。 它被稱為標記接口。 還有其他類似的接口。

你可以看看

http://mrbool.com/what-is-marker-interface-in-java/28557

正如我已經說過的,0方法的接口的目的是關於純合同。 讓我在下一個例子中解釋一下:

假設我們有一個由多個接口組成的簡單數據訪問層,例如:

DeletableDao,InsertableDao,UpdatableDao等......以及像DaoImpl這樣的實現類:

假設我們有這樣的實體類:

public Person implements DaoEntity {
    private int id;
    private String name;

    // getters and setters
}

由於純合同,DaoEntity與0方法的接口:

public DaoEntity {
}

讓我們說我們的DeletableDao看起來像這樣:

public interface DeletableDao<T extends DaoEntity> {
    void delete(T t);
}

和實現類:

public DaoImpl implements DeletableDao<Person> {

     public void delete(Person p) {
        // Delete person
    }
}

這一切意味着什么? DaoEntity界面的目的是DaoEntity 這意味着只有DaoEntity子類的實例才能傳遞給delete方法並被刪除。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM