-2

我有这样的类结构:

public class NFAddress

public class NFAddresses<T extends NFAddress> extends ArrayList<NFAddress>

public class NFMutableAddress extends NFAddress

public class NFMutableAddresses<T extends NFMutableAddress> extends NFAddresses<NFMutableAddress>

当我尝试访问 NFMutableAddresses 中的对象时

for (NFMutableAddress nucleusAddress : this) { 对象被定义为 NFAddress 而不是 NFMutableAddress }

谢谢你的帮助。

4

1 回答 1

3

试试这些类定义:

public class NFAdressess<T extends NFAddress> extends ArrayList<T>
public class NFMutableAddresses<T extends NFMutableAddress> extends NFAddresses<T>

与您的类相比,变化的是泛型参数T被转发到正在扩展的类。此参数T可以是(在第一种情况下)扩展的任何东西NFAddress(因此它可以是NFMutableAddress或任何其他扩展这两者的任何东西)。

于 2013-05-24T13:09:05.797 回答