【发布时间】:2013-07-10 17:11:24
【问题描述】:
我有一个名为Packet 的类和一个名为PacketClientConnecting 的类,它扩展了它。 PacketClientConnecting 和其他数据包的实例存储在ArrayList<Packet> 中。
我想以static 和non-static 方式访问id 值,例如PacketClientConnecting.getStaticId() 或packetArrayList.get(5).getId()。
如何在不覆盖每个类中的两个函数的情况下做到这一点?
【问题讨论】:
-
您面临的实际问题是什么?
-
基类中能有List吗?
-
PacketClientConnecting.getStaticId() 有参数吗?它的类型是什么?如果 getStaticId(x) 只返回 x.getId(),那么您不必重写它。但这只是一个猜测,因为我不确定你想要完成什么。
-
您面临的实际问题是什么?我必须在每个数据包类中复制两个函数(静态和非静态)。我认为这不是最好的方法。你能在基类中有 List 吗?没有。
-
^PacketClientConnecting.getStaticId() 有参数吗?不,每个数据包只有一个 id。我想通过 class.getId() 或 instance.getId() 获取它。实例作为数据包存储在 ArrayList 中。
标签: java function casting static