I think jbooth is talking more about forced verbosity such as<p><pre><code>  Map&lt;String, Customer&gt; customerMap = createCustomerMap();
</code></pre>
where in other less verbose languages you find<p><pre><code>  val customerMap = createCustomerMap();
</code></pre>
Always seeing the definition of a value in the current function context is actually very nice for maintainability, but does give Java the reputation of being overly verbose.<p>Stuff like getters&#x2F;setters on all values in a class are awful though and are both a code smell and unnecessary. They break the OO principles and should not be there in the first place. It&#x27;s good that Java makes those 6 screens worth of getters and setters awful - they are awful. For objects which are used solely for transfering state, check out Google&#x27;s AutoValue ( <a href="https:&#x2F;&#x2F;github.com&#x2F;google&#x2F;auto&#x2F;tree&#x2F;master&#x2F;value" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;google&#x2F;auto&#x2F;tree&#x2F;master&#x2F;value</a> )<p>However if you do see a class that is 6 screens of just getters and setters then you know exactly which class you need to fix.