Questions tagged «bounded-wildcard»



5
Mockito:存根返回带界通配符的类型的存根方法
考虑以下代码: public class DummyClass { public List<? extends Number> dummyMethod() { return new ArrayList<Integer>(); } } public class DummyClassTest { public void testMockitoWithGenerics() { DummyClass dummyClass = Mockito.mock(DummyClass.class); List<? extends Number> someList = new ArrayList<Integer>(); Mockito.when(dummyClass.dummyMethod()).thenReturn(someList); //Compiler complains about this } } 编译器抱怨该行试图对行为进行存根dummyMethod()。关于如何使用存根方法返回带界通配符的类型的任何指针?


5
Java:有界通配符或有界类型参数?
最近,我读了这篇文章:http : //download.oracle.com/javase/tutorial/extra/generics/wildcards.html 我的问题是,而不是创建像这样的方法: public void drawAll(List<? extends Shape> shapes){ for (Shape s: shapes) { s.draw(this); } } 我可以创建一个这样的方法,它可以正常工作: public <T extends Shape> void drawAll(List<T> shapes){ for (Shape s: shapes) { s.draw(this); } } 我应该使用哪种方式?通配符在这种情况下有用吗?

5
为什么在有界通配符泛型中不能有多个接口?
我知道Java的泛型类型有各种各样的违反直觉的属性。特别是我不理解的一个,希望有人能向我解释。为类或接口指定类型参数时,可以对其进行绑定,以使其必须使用来实现多个接口public class Foo<T extends InterfaceA & InterfaceB>。但是,如果要实例化实际对象,则此方法不再起作用。List<? extends InterfaceA>很好,但是List<? extends InterfaceA & InterfaceB>无法编译。考虑以下完整代码段: import java.util.List; public class Test { static interface A { public int getSomething(); } static interface B { public int getSomethingElse(); } static class AandB implements A, B { public int getSomething() { return 1; } public …
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.