Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do you define a class of constants in Java?

Suppose you need to define a class which all it does is hold constants.

public static final String SOME_CONST = "SOME_VALUE"; 

What is the preferred way of doing this?

  1. Interface
  2. Abstract Class
  3. Final Class

Which one should I use and why?


Clarifications to some answers:

Enums - I'm not going to use enums, I am not enumerating anything, just collecting some constants which are not related to each other in any way.

Interface - I'm not going to set any class as one that implements the interface. Just want to use the interface to call constants like so: ISomeInterface.SOME_CONST.

like image 925
Yuval Adam Avatar asked Jan 26 '09 12:01

Yuval Adam


People also ask

How do you declare a constant class in Java?

To turn an ordinary variable into a constant, you have to use the keyword "final." As a rule, we write constants in capital letters to differentiate them from ordinary variables. If you try to change the constant in the program, javac (the Java Compiler) sends an error message.

How do you define a class constant?

Class constants can be useful if you need to define some constant data within a class. A class constant is declared inside a class with the const keyword. Class constants are case-sensitive. However, it is recommended to name the constants in all uppercase letters.


1 Answers

Use a final class. for simplicity you may then use a static import to reuse your values in another class

public final class MyValues {   public static final String VALUE1 = "foo";   public static final String VALUE2 = "bar"; } 

in another class :

import static MyValues.* //...  if(variable.equals(VALUE1)){ //... } 
like image 177
user54579 Avatar answered Sep 22 '22 08:09

user54579