title: PropertyDescriptor.getReadMethod() tries to find set method instead of get method
body: <p>I have a class:</p>
  
  <pre><code>public abstract class Produkt extends ObjectPlus implements Serializable {
      static int ID = 0;
      private int id;
  
      public Produkt() {
          super();
          id = ID++;
      }
  
      public int getId() {
          return id;
      }
      //lot OF OTHER METHODS
  } 
  </code></pre>
  
  <p>Somewhere else in other class I try to invoke <code>getId()</code> method on an object to get the <code>id</code> field value by this:</p>
  
  <p><code>Integer fieldValue =  (Integer) new PropertyDescriptor("Id", c).getReadMethod().invoke(o);</code></p>
  
  <p><code>c</code> is of type <code>Class</code>, <code>o</code> is of type <code>Object</code>, <code>id</code> is the field I want.</p>
  
  <p>but I get this exception:</p>
  
  <pre><code>java.beans.IntrospectionException: Method not found: setId
      at java.beans.PropertyDescriptor.&lt;init&gt;(Unknown Source)
      at java.beans.PropertyDescriptor.&lt;init&gt;(Unknown Source)
      at pakiet.ObjectPlus.getCurrentId(ObjectPlus.java:143)
      at pakiet.ObjectPlus.wczytajEkstensje(ObjectPlus.java:118)
      at pakiet.Main.main(Main.java:72)
  </code></pre>
  
  <h2>Why does he try access setter instead of getter?</h2>
  
  <p>The full method is:</p>
  
  <pre><code>public static int getCurrentId(Class c){
          //jak wczytamy to zeby nowe osoby mialy nadal unikalne ID(wieksze od najwiekszego)
          int maxId = Integer.MIN_VALUE;
          for (Map.Entry&lt;Class, ArrayList&gt; entry : ekstensje.entrySet()) {
              for (Object o : entry.getValue()){
                  // This method is the dynamic equivalent of the Java language instanceof operator.
                  if(c.isInstance(o)){
                      try{
                       Class&lt;?&gt; clazz = o.getClass();
                       Integer fieldValue =  (Integer) new PropertyDescriptor("Id", c).getReadMethod().invoke(o);
  
                      if(fieldValue &gt; maxId)
                          maxId = fieldValue;
  
                      }catch(Exception e){
                          e.printStackTrace();
                      }
  
                  }
              }
          }
          return maxId + 1;
          //
      }
  </code></pre>