java – 不应在返回参数中使用通用通配符类型
是否可以说通用通配符类型不应该用在方法的返回参数中?
换句话说,声明一个如下所示的接口是有意义的: interface Foo<T> { Collection<? extends T> next(); } 另外,可以说通用通配符类型仅在方法的参数声明中有意义吗? 解决方法
在方法形式参数中使用通配符类型的主要好处是为用户提供传递的灵活性,比如任何类型的Collection,List或任何实现Collection的东西(假设集合被声明为Collection<?> ).您经常会发现自己在形式参数中使用通配符类型.
但理想情况下,您应该避免将它们用作方法的返回类型.因为这样,您将强制该方法的用户在调用者端使用通配符类型,即使他们不想这样做.通过使用通配符类型,你说,嘿!这个方法可以返回任何类型的Collection,所以你的工作就是照顾它.你不应该这样做.最好使用有界类型参数.使用有界类型参数,将根据您传递的类型或方法调用的目标类型推断类型. 以下是Effective Java Item 28的引用:
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |