是否可以将通配符用作属性本身而不是类型参数?
public void doSomething(<? extends Context> myObject){
}
我想确保我的对象扩展Context并实现某个接口。
使用通配符作为返回类型是有效的,但将其用作属性似乎不起作用
public <? extends MyClass> validMethod(){
}
答案 0 :(得分:1)
是的,你必须在返回类型之前定义它。
public <T extends MyClass> void myMethod(T param);
答案 1 :(得分:1)
您没有显式声明(对于您的情况)哪个是接口,哪个是类,但是如果您希望将泛型类型绑定到扩展类和接口,则这将是它
public <T extends Number & Comparable<T>> T findNumber(List<T> elements) { }
Number
是一个抽象类; Comparable
是一个界面。我相信你必须按照这个顺序指定它们 - 具体在界面之前。