2014-03-28 48 views
0

通过码时剪断在线重要性?在仿制药

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

A.任何能告诉我是什么?意味着什么?

B. <? extends GrantedAuthority>哪个类扩展了GrantedAuthority?

C.在泛型中,我们在<>中提供类类型以确保类型安全,为什么有人想在<>中提供A扩展B?

回答

1

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

所以,你可以说,<?><? extends Object>

检查Oracle docs for Type Arguments and Wildcards

速记从here:(?)

在通用代码,问号,称为通配符, 代表一种未知的类型。通配符可用于各种各样的情况:作为参数,字段或局部变量的类型; 有时作为返回类型(尽管更好的编程练习 更具体)。对于泛型方法调用,泛型类实例创建或 超类型,通配符永远不会用作类型参数 。