簡體   English   中英

什么是地圖 <String, Serializable> 意思?

[英]What does Map<String, Serializable> mean?

有人可以解釋一下Map<String, Serializable>是什么意思嗎? 我知道Map必須有鍵值對,我習慣看<String, String> <Integer, whatever> ,但我從未見過Serializable類型的值。 我也明白Serializable是一個在磁盤/網絡上將對象寫入字節的過程。 但是當我們使用Map<String, Serializable>時,這一切是如何加起來的? 它歸結為什么?

我可以將任何對象放入Serializable類型的值中,或者它必須是某個特殊對象或其他東西嗎? 有人能解開一些光嗎?

我也明白Serializable是一個在磁盤/網絡上將對象寫入字節的過程。 但是當我們使用Map<String, Serializable>時,這一切是如何加起來的?

Serializable是一個Java接口:

FROM API

  • 實現java.io.Serializable接口的類啟用了類的可序列化。
  • 未實現此接口的類將不會將其任何狀態序列化或反序列化。
  • 序列化接口沒有方法或字段,僅用於標識可序列化的語義。

我可以將任何對象放入Serializable類型的值中,或者它必須是某個特殊對象或其他東西嗎?

  • 可序列化類的所有子類型本身都是可序列化的。

有人可以解釋一下Map<String, Serializable>是什么意思嗎?

這意味着您將擁有一個String鍵和一個必須是實現Serializable的對象的值。

例如:

// valid object for the map
class Bar implements Serializable {
    private static final long serialVersionUID = 1L;

    // class stuff
}

// not a candidate
class Foo {
    // class stuff
}

然后:

Map<String, Serializable> myMap = new HashMap<String, Serializable>();
Bar bar = new Bar();
map.put("BAR", bar); // this is ok
Foo foo = new Foo();
map.put("FOO", foo); 
// The method put(String, Serializable) in the type HashMap<String,Serializable> 
// is not applicable for the arguments (String, Foo)

String是鍵,Serializable是值。 它是一個可以在整個集群中序列化和傳輸的對象(使用給定的SerDe)。

Serializable是一個接口。

這意味着map的值是實現Serializable接口的類

它還意味着get()方法返回的obgect的靜態類型將是可序列化的

Map是一個稱為模板類的東西(或Java中使用的泛型類型),請參閱此內容 Map類在它的模板上有兩個類,只要符合一些條件 ,它就可以是任何東西。 這里的Key只是一個String,Value是一個實現Serializable的類。 如果它只支持(基類)String類,那么map類就不會非常動態。

暫無
暫無

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

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