Why is it that a generic T
cannot be used as a return type of class
if T extends Class
.
Example:
public class Foo<T extends Bar> {
Bar[] array = new Bar[200];
Optional<T> forIndex(int index) {
return Optional.ofNullable(array[index]);
}
}
T
is required to extend Bar
Which means that T
should never have a casting problem, or am I mistaking this? Could somebody elaborate.