Java – should a class implement an interface with only constants?
Today, I looked at the zipentry class and found the following:
public class ZipEntry implements ZipConstants,Cloneable
Zipconstants does not define any method – only constants (static final int lochdr = 30)
Then I found that implementing the interface with constants allows you to access these constants directly as if they were defined in the class itself For example:
public interface Constants {
static final int CONST = 2;
}
public class implements Constants {
int doSomething(int input) {
return CONST * input;
}
}
Are there any other reasons not to use this except:
>This constant comes from the initial confusion > using interfaces to define constants is considered wrong
I'm curious because it's definitely not a common practice
Solution
Another reason not to use this:
Starting with Java 5, there is a "clean" language function that can achieve the same goal: static imports
The interface that implements constants is basically hack before java-5 that simulates static import
