title: Java bounded wildcard in return type
body: <p>I've read in various places including <a href="http://www.angelikalanger.com/GenericsFAQ/FAQSections/ProgrammingIdioms.html#Should%20I%20use%20wildcards%20in%20the%20return%20type%20of%20a%20method?" rel="noreferrer">here</a> that having a bounded wildcard in a method return type is a bad idea.  However, I can't find a way to avoid it with my class.  Am I missing something?</p>
  
  <p>The situation looks something like this:</p>
  
  <pre><code>class EnglishReaderOfPublications {
  
      private final Publication&lt;? extends English&gt; publication;
  
      EnglishReaderOfPublications(Publication&lt;? extends English&gt; publication) {
          this.publication = publication;
      }
  
      void readPublication() {
          publication.omNomNom();
      }
  
      Publication&lt;? extends English&gt; getPublication() {
          return publication;
      }
  }
  </code></pre>
  
  <p>In summary, a class that I want to be able to <em>consume</em> any publication that is in some variant to English.  The class needs to allow access to the publication from outside but, ideally, the callers of <code>getPublication</code> wouldn't want the result as a bounded wildcard.  They would be happy with <code>Publication&lt;English&gt;</code>.</p>
  
  <p>Is there a way round this?</p>