It is possible to specify a wildcard type that has a lower bound to Object:
public void method(Collection<? super Object> c) {
// compiles, but ? can only be Object
}
Logically the unknown type can only be Object (no type is above Object in the class hierarchy).
Is there ever a requirement or good reason to use a type of <? super Object>?
yes, there is a use case for “? super XXXXXX”, as outlines here. the gist is the using user/extends will make your collection either read only or write only.