title: Bean introspection in Java
body: <p>I'm learning for a job interview in Java.
  They told me to learn the concepts of Beans introspection, so I searched the web and
  read in a couple of sites including the next posts:</p>
  
  <ul>
  <li><a href="https://stackoverflow.com/questions/2044446/java-introspection-and-reflection">Java introspection and reflection</a></li>
  <li><a href="https://stackoverflow.com/questions/1727603/places-where-javabeans-are-used">Places where JavaBeans are used?</a></li>
  <li><a href="https://stackoverflow.com/questions/3295496/what-is-a-java-bean-exactly">What is a Java Bean exactly?</a></li>
  <li><a href="http://docs.oracle.com/javase/tutorial/reflect/index.html" rel="nofollow noreferrer">Java doc - Reflection</a></li>
  <li><a href="http://www.cs.grinnell.edu/~rebelsky/Courses/CS223/2004F/Handouts/introspection.html" rel="nofollow noreferrer">Introspection in Java</a></li>
  </ul>
  
  <p>As far as I understood: Bean is like any other object class in Java, but this class must have the next features: </p>
  
  <ol>
  <li>All properties private (use getters/setters)</li>
  <li>A public no-argument constructor</li>
  <li>Implements Serializable.</li>
  </ol>
  
  <p>General things:</p>
  
  <ol start="4">
  <li>Introspection is giving me the possibility to "examine" an object during run-time, and 
  that way I can get the class properties names, methods names constructors etc.</li>
  <li>Introspection uses Reflection to get the Information of a class.</li>
  </ol>
  
  <p><strong>I still have some questions:</strong></p>
  
  <ol>
  <li>Why do I need this kind of a mechanism, meaning, in which cases should I use introspection instead of using any other thing? </li>
  <li>Is there any difference between bean's introspection and a regular introspection?</li>
  <li>How it's working besides the methods I can use?</li>
  </ol>
  
  <p>I would be happy if someone could give me his own prospective about this subject, or to give me some kind of a link for useful information.</p>