When it comes to declare predefined constants in a name-value pair, I have been randomly choosing between 'java.util.Properties', 'enums' or a separate class with 'public static final' values.
For future reference, I need some guidelines over which approach to take.
Thanks!
It all depends of your constant lifecycle. Constant are by definition something that do not move. Choosing the right methods will be a question of the likely to change and the repackaging need.
If you're really sure, it wont move ever : static final is the way to go. Pi, mathematical constants, things like that are a good example.
If you think there is a potential change but need the ease of code manipulation and do not fear of ascendant compatibility, enums is ok. I did that for error code some time ago.
If you think there is a potential change but you don't want this change to impact your code, properties (with resource bundle) is the better choice. Labels (translations), inital settings, etc are also a good example.