意义?在泛型

时间:2014-03-28 09:58:44

标签: java java-ee generics

通过在线剪辑的代码

public Collection<? extends GrantedAuthority> getAuthorities(Integer role) {
        List<GrantedAuthority> authList = getGrantedAuthorities(getRoles(role));
        return authList;
    }

一个。可以告诉我?表示什么吗?

B中。 <? extends GrantedAuthority>哪个类正在扩展GrantedAuthority?

℃。在泛型中,我们在&lt;&gt;中提供类类型。为了确保类型安全,为什么有人想在&lt;&gt;?

中提供A扩展B.

1 个答案:

答案 0 :(得分:1)

它是一个通配符,表示任何扩展Object的类型(也包括对象)。

因此,您可以说<?><? extends Object>

的简写

检查Oracle docs for Type Arguments and Wildcards

来自here

  

在通用代码中,问号(?),称为通配符,   代表一种未知类型。通配符可以用于各种   情境:作为参数,字段或局部变量的类型;   有时作为返回类型(虽然它是更好的编程实践   更具体)。通配符永远不会用作类型参数   用于泛型方法调用,泛型类实例创建或   超类型。