title: Why when a constructor is annotated with @JsonCreator, its arguments must be annotated with @JsonProperty?
body: <p>In Jackson, when you annotate a constructor with <code>@JsonCreator</code>, you must annotate its arguments with <code>@JsonProperty</code>. So this constructor</p>
  
  <pre><code>public Point(double x, double y) {
      this.x = x;
      this.y = y;
  }
  </code></pre>
  
  <p>becomes this:</p>
  
  <pre><code>@JsonCreator
  public Point(@JsonProperty("x") double x, @JsonProperty("y") double y) {
      this.x = x;
      this.y = y;
  }
  </code></pre>
  
  <p>I don't understand why it's necessary. Can you please explain?</p>