An annotation on a constructor that shows how the parameters of that constructor correspond to the constructed object's getter methods. For example:
public class Point {
@ConstructorProperties({"x", "y"})
public Point(int x, int y) {
this.x = x;
this.y = y;
}
public int getX() {
return x;
}
public int getY() {
return y;
}
private final int x, y;
}
The annotation shows that the first parameter of the constructor can be retrieved with the
getX()
method and the second with the
getY()
method. Since parameter names are not in general available at runtime, without the annotation there would be no way to know whether the parameters correspond to
getX()
and
getY()
or the other way around.