通配符作为java中的方法属性

时间:2014-03-22 16:16:55

标签: java wildcard method-parameters

是否可以将通配符用作属性本身而不是类型参数?

public void doSomething(<? extends Context> myObject){


}

我想确保我的对象扩展Context并实现某个接口。

使用通配符作为返回类型是有效的,但将其用作属性似乎不起作用

public <? extends MyClass> validMethod(){


}

2 个答案:

答案 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是一个界面。我相信你必须按照这个顺序指定它们 - 具体在界面之前。