Java 什么是地图<;字符串,可序列化>;什么意思?

Java 什么是地图<;字符串,可序列化>;什么意思?,java,serialization,Java,Serialization,有人能解释一下Map是什么意思吗?我知道Map必须有键值对,我习惯于看到,但我从未见过可序列化的类型的值。我还了解到,Serializable是一个将对象写入磁盘/网络字节的过程。但是,当我们使用Map时,这一切是如何加起来的呢?归结起来是什么 我可以将任何对象放入Serializable类型的值中,或者它必须是某个特殊对象或其他对象吗?有人能解释一下吗 我还了解到,Serializable是一个将对象写入磁盘/网络字节的过程。但是,当我们使用Map时,这一切是如何加起来的呢 是一个Java接口

有人能解释一下
Map
是什么意思吗?我知道Map必须有键值对,我习惯于看到
,但我从未见过
可序列化的
类型的值。我还了解到,
Serializable
是一个将对象写入磁盘/网络字节的过程。但是,当我们使用
Map
时,这一切是如何加起来的呢?归结起来是什么

我可以将任何对象放入Serializable类型的值中,或者它必须是某个特殊对象或其他对象吗?有人能解释一下吗

我还了解到,
Serializable
是一个将对象写入磁盘/网络字节的过程。但是,当我们使用
Map
时,这一切是如何加起来的呢

是一个Java接口:

发件人:

  • 类的可序列化性由实现
    java.io.Serializable
    接口的类启用
  • 未实现此接口的类的任何状态都不会序列化或反序列化
  • 序列化接口没有方法或字段,仅用于标识可序列化的语义
我可以将任何对象放入类型为
Serializable
的值中,或者它必须是某个特殊对象或其他对象吗

  • 可序列化类的所有子类型本身都是可序列化的
有人能解释一下
Map
是什么意思吗

这意味着您将拥有一个
字符串
键和一个必须是对象的值

例如:

// 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 myMap=newhashmap();
条形=新条形();
地图。放置(“条”,条);//这没关系
Foo-Foo=新的Foo();
地图放置(“FOO”,FOO);
//方法将(字符串,可序列化)放入类型HashMap中
//不适用于参数(字符串,Foo)

字符串是键,Serializable是值。它是一个可以在整个集群中序列化和传输的对象(使用给定的SerDe)。

Serializable
是一个接口

这意味着map的值是实现
Serializable
接口的类


这还意味着get()方法返回的对象的静态类型将是可序列化的

映射是一种称为模板类的东西(或Java中使用的泛型类型),请参见。Map类在其模板上有两个类,可以是任何类型的,只要它们匹配一些。这里的键只是一个字符串,值是一个实现可序列化的类。如果map类只支持(基类)String类,那么它就不会是非常动态的。

您的问题令人费解。你知道java接口是什么吗?它只是实现可序列化接口的值的
字符串的
映射。这不是一个好问题。你能想象一张
Map
类型的地图,比如说一个特定单词的所有同义词吗<代码>映射、字符串、可序列化>
也一样。
List
Serializable
都是接口
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)