通过在线剪辑的代码
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.答案 0 :(得分:1)
它是一个通配符,表示任何扩展Object的类型(也包括对象)。
因此,您可以说<?>
是<? extends Object>
检查Oracle docs for Type Arguments and Wildcards
来自here:
在通用代码中,问号(?),称为通配符, 代表一种未知类型。通配符可以用于各种 情境:作为参数,字段或局部变量的类型; 有时作为返回类型(虽然它是更好的编程实践 更具体)。通配符永远不会用作类型参数 用于泛型方法调用,泛型类实例创建或 超类型。