阶级结构
class Packet {}
class PacketList extends ArrayList<Packet> {} 现在我正在尝试将ArrayList的对象转换为PacketList的对象。
List<Packet> p = new ArrayList<Packet> ();
PacketList pList = p;但这行不通。请帮帮我
错误消息:
不兼容类型:列表不能转换为PacketList
发布于 2015-10-24 09:40:13
PacketList扩展了ArrayList<Packet>,这意味着新引入的或覆盖的方法可能需要并依赖于仅在新的PacketList版本中引入的其他工件。如果它指的是仅在PacketList中可用的实例变量呢?ArrayList将没有这些实例变量,尽管您打算通过这些方法访问它们.
不,不能将超类的实例分配给匹配扩展类的类型的变量。
相反,您可以使用超级类型作为泛型类型来分配扩展(子类)实例。
https://stackoverflow.com/questions/33316499
复制相似问题