Constructor annotation

Claus Luethje Claus.Luethje at
Wed Oct 16 03:26:12 PDT 2013

I'd prefer the second option, because the correlation of the order of arguments in the annotation and in the constructors parameters is irritating and error prone.
The way it is structured in option two is seen elsewhere also. So, nothing new to learn/absorb.
@FXMLArgument is a useful name to describe what's going on.
My 2 cents...

-----Original Message-----
From: openjfx-dev-bounces at [mailto:openjfx-dev-bounces at] On Behalf Of Eva Krejcirova
Sent: Mittwoch, 16. Oktober 2013 11:22
To: openjfx-dev at
Subject: Constructor annotation

Hi All,

when we retired builders, we caused a problem for FXML which doesn't have a way to create classes without default constructors. Back then we decided to use an annotation for this but never actually got to implement it and we need to fix this for FX8. I am in the process of adding this functionality to FXMLLoader but we need to decide how the annotation will look like and I could use some help with this.

We cannot use already existing ConstructorProperties for this, because it's java.beans package and we don't want to create to dependency on this package in JavaFX, so we need to introduce a new annotation.

We have two options:

1. Annotate the whole constructor:
     @ConstructorArguments({"a", "b", "list"})
     public ImmutableClass(int a, int b, Integer... list)

2. Annotate the arguments:
     public ImmutableClass(@FXMLArgument("a") int a, @FXMLArgument("b")int b, @FXMLArgument("list")Integer... list)

Which option do you like more and how should the annotation be named?


More information about the openjfx-dev mailing list