【发布时间】:2011-10-09 07:12:45
【问题描述】:
编译:
public class SerializableObject<T> implements Serializable
{
public T m_object;
}
不编译:
public class SerializableObject<T> extends T implements Serializable
{
}
所以,我想要一个泛型类从其泛型类型参数派生。
为什么?
假设我有一个Map<K, V>,我只是想序列化它。
我也不知道我会有哪些钥匙。
我该怎么做?
【问题讨论】:
-
如果您可以在别处定义
K和V(例如,在包含地图的类上),<K extends Serializable>还不够吗? -
这毫无意义。你不能序列化一个不打算序列化的类的对象,只需在其上打接口即可。该类的开发人员必须预见到这一点(将字段标记为瞬态,确保其他字段可序列化等)。
-
@Joeri +1 为“在它上面拍接口”大声笑!询问无伤大雅,您可能会得到肯定
标签: java oop generics inheritance metaprogramming