title: Java (anonymous or not) inner classes: is it good to use them?
body: <p>In some of my projects and in some books was said to <strong>not</strong> use inner class (anonymous or not, static or not) - except in some restricted conditions, like <code>EventListener</code>s or <code>Runnable</code>s - is a best practice. They even were 'forbiden' in my first industry project.</p>
  
  <p>Is this really a best practice? Why?</p>
  
  <p>(I have to say that I'm using them a lot...)</p>
  
  <p>-- EDIT ---<br>
  I can't pick a right answer in all these responses: there's part of rightness on mostly all of them: I'll still use inner classes, but I'll try to use them less often ! </p>