Java final class with constant

I must define a class which all it does is hold constants.

public static final String CODE1 = "100";
public static final String CODE2 = "200";

Now I want use these values in other classes. Is it better to use this class as a static class or instantiate it ?

Thanks.

Note : I know enums but in this context, I must use a class.

Jon Skeet
people
quotationmark

Just to use the values, you certainly shouldn't instantiate the class. Just because you can access static members as if they were instance members doesn't mean it's a good idea.

If the class really only contains constants - and if you're sure that's a good idea, rather than those constants appearing within classes which are directly related to them - you should make it a final class with a private constructor, so that no-one can pointlessly instantiate it:

public final class Codes {
    public static final String CODE1 = "100";
    public static final String CODE2 = "200";

    // Prevent instantiation
    private Codes() {
    }
}

Don's answer suggesting using an enum is a very good idea too - it means you can use Code in your API everywhere that you don't need the exact string representation, which prevents you from accidentally using non-code values.

people

See more on this question at Stackoverflow