Nie, nie, nie
Znak "?" nie jest skróconą formą "if". Operator trójargumentowy jest skróconą wersją "if" a znak "?" wchodzi w jego skład:
warunek ? prawda : fałsz;
Jeżeli chodzi o przykład, który podałeś, to jest to przykład kodu generycznego, czyli kodu, który piszemy nie znając typu danych, jaki zostanie użyty. Znak "?" to w tym wypadku tzw. typ wieloznaczny (ang. wildcard type). Przykładowo metoda:
addAll(Collection<? extends String> arg0)
Przyjmuje jako parametr kolekcję typów danych, które rozszerzają klasę String. Może to być jakikolwiek typ, byleby dziedziczył po klasie String.