通用 Return 输入 Java
Generic Return Type in Java
我正在抽象 class 上实现一个方法,其中 returns 一个具体类型列表,具体取决于它接收的参数。
public static List<T extends AbstractClass> method(List<? extends AbstractClass> objects) {
return listOfT;
}
上面的方法依赖于抽象class。如果我用 ConcreteType1 列表调用它,那么我会返回 List<ConcreteType1>
。如果我用 ConcreteType2 调用它,那么我会得到一个 List<ConcreteType1>
。
正如它所写的那样,它现在不起作用。我收到一个编译错误 "Unexpected Bound"。有什么想法吗?
应该这样写
public static <T extends AbstractClass> List<T> method(List<T> objects) {
return listOfT;
}
我正在抽象 class 上实现一个方法,其中 returns 一个具体类型列表,具体取决于它接收的参数。
public static List<T extends AbstractClass> method(List<? extends AbstractClass> objects) {
return listOfT;
}
上面的方法依赖于抽象class。如果我用 ConcreteType1 列表调用它,那么我会返回 List<ConcreteType1>
。如果我用 ConcreteType2 调用它,那么我会得到一个 List<ConcreteType1>
。
正如它所写的那样,它现在不起作用。我收到一个编译错误 "Unexpected Bound"。有什么想法吗?
应该这样写
public static <T extends AbstractClass> List<T> method(List<T> objects) {
return listOfT;
}