title: Is using output parameters considered bad practice?
body: <p>Every time I see a method were one of the parameters is an <a href="http://www.javapractices.com/topic/TopicAction.do?Id=37" rel="noreferrer">output parameter</a> like</p>
  
  <pre><code>void addTokenErrorsToReport(List&lt;String&gt; tokens, Map&lt;String, Integer&gt; report)
  </code></pre>
  
  <p>I get the feeling that this is just plain wrong. From my point of view, parameters in general should be immutable, and not changed within a method. E.g., the above method could be rewritten to</p>
  
  <pre><code>Map&lt;String, Integer&gt; createTokenErrorsReport(List&lt;String tokens)
  </code></pre>
  
  <p>The returned <code>Map</code> could then be merged with the original report Map.</p>
  
  <p>Is this assumption right? Or are both versions equally acceptable?</p>