title: Don't understand @ConstructorProperties
body: <p>About <code>@ConstructorProperties</code></p>
  
  <p><a href="http://docs.oracle.com/javase/8/docs/api/java/beans/ConstructorProperties.html" rel="noreferrer">Documentation</a> says "An annotation on a constructor that shows how the parameters of that constructor correspond to the constructed object's getter methods". And it gives an example which is ambiguous because variable names are identical to parameters.</p>
  
  <p>I really don't get why <code>@ConstructorProperties({"x", "y"})</code> refers to getters <code>getX()</code> and <code>getY()</code>. Case of x and y are not consistent with annotation.</p>
  
  <p>So to clarify what should be the annotation for the constructor in this code:</p>
  
  <pre><code>public class Point {
      public Point(int a, int b) {
         this.c = a;
         this.d = b;
     }
  
     public int getCc() {
         return c;
     }
  
     public int getDd() {
         return d;
     }
  
     private final int c, d;
  </code></pre>
  
  <p>}</p>
  
  <p>(I edited the code because from the answer, I understand the annotation expects the code to follow common case convention for getters, e.g. <code>cc</code> getter must be <code>getCc()</code>. But I keep on purpose, for disambiguation, the difference between getter name and actual variable returned)</p>
  
  <p>Second question... </p>
  
  <pre><code>@ConstructorProperties(value="text")
  </code></pre>
  
  <p>What does this annotation means, for <a href="http://docs.oracle.com/javase/8/docs/api/javax/swing/JButton.html#JButton-java.lang.String-" rel="noreferrer">JButton(String text)</a>?</p>
  
  <p>It seems provided for use by tools, but just want to understand.</p>