为什么不应该在返回类型中使用通配符

时间:2018-09-11 22:11:09

标签: java generics bounded-wildcard

一些地方,例如Generic wildcard types should not be used in return parameters和其他一些地方,我说过在返回类型中不应该使用通配符。据我了解,其背后的原因是该方法的用户不必键入? extends Something

在我最近的一些项目中,我一直在返回类型中使用通配符来显示和强制执行不应将值添加到Collection或确保调用者不调用任何引用该类型的方法的情况。 Something当他们只应使用返回值来获取东西(迭代或调用get(index)等时)。

// some of what my code looks like
interface ClassThatReturnsCollection {
    // I want to enforce immutability even if the
    // returned implementation isn't immutable
    Collection<? extends AnotherObject> getOtherObjects();
}

我想我的问题是,这是一个有效的用例吗?这完全不好吗?

0 个答案:

没有答案