I am a bit confused between using a constants file and properties file in Java.
How to decide when to use Constants.java and when to use a .properties file?
Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.
Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.
Lost your password? Please enter your email address. You will receive a link and will create a new password via email.
Please briefly explain why you feel this question should be reported.
Please briefly explain why you feel this answer should be reported.
Please briefly explain why you feel this user should be reported.
Use hardwired constants in your Java code when you don’t want users / deployers / testers / tests changing them.
Use a properties file when you do want this to be a possibility.
The point is that changing a hard-wired constant in your application’s source code entails editing the source code, rebuilding and redeploying. By contrast, changing a properties file may be as simple as firing up NotePad.
You commented:
No. Not always. For example, if you distribute your application to end users to install on their machines and it has constants that you do not want users to change it would be a bad idea to put them in a properties file.
It is impossible to reduce this to an "always prefer X" recommendation. You need to understand your own application requirements and decide for yourself.