这是一个真正的新手提出的基本 Java 问题。我有一组实现某个接口(接口“MyIfc”)的Java对象(属于“MyClass”类)。我有一组这些对象存储在我的类中的私有变量中,声明如下:
protected Set<MyClass> stuff = new HashSet<MyClass>();
我需要提供一个公共方法,将该集合作为“MyIfc”类型的对象集合返回。
public Collection<MyIfc> getMyStuff() {...}
我该如何进行转换?以下行给我一个错误,它无法进行转换。我猜编译器知道 MyClass 类的对象实现了 MyIfc,因此会处理它。
Collection<MyIfc> newstuff = stuff;
任何启发都值得赞赏。
也许最正确的方法是:
return new HashSet<MyIfc>(stuff);
如果班级太大而无法做到这一点,您可以这样做:
return Collections.unmodifiableSet(stuff);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)