title: Why does the Optional isPresent class method take Consumer<? super T> as a parameter, not Consumer<T>?
body: <p>I'm reading about wildcard and I'm a little confused.I don't really understand why the ifPresent method needs <code>? super T</code> .
  <code>public void ifPresent(Consumer&lt;? super T&gt; consumer)</code>
  Why doesn't just T work?</p>
  <p>I've read about PECS and it's clear how it works for class methods, for example,but why is it here in the interface, I'll be glad to help.</p>