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)