AndroidDev AndroidDev - 1 year ago 117
Java Question

Parameter with question mark and super

In Java, I've come across a method that is formatted like this:

public final Subscription subscribe(final Action1<? super T> onNext, final Action1<Throwable> onError) {

In the first parameter, what does the question mark and super mean?

Answer Source

? here means everything that is a superclass of T

super means what you can put into the class (at most this, perhaps a superclass).

Because super indicates the lower bounding class of a generic element. So, Action1<? super T> could represent Action1<T> or Action1<Object>.