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