Have you consider bytes code usage between enums & ints constant?
Arif Ariyan
11

public static final int APPLE_FUJI = 0;
public static final int APPLE_PIPPIN = 1;
public static final int APPLE_GRANNY_SMITH = 2;
public static final int ORANGE_NAVEL = 0;
public static final int ORANGE_TEMPLE = 1;
public static final int ORANGE_BLOOD = 2;

Now, if you pass an apple in a method which expects a orange, it won’t complain you. There is no easy way to translate int constants into printable strings. If you print such a constant or display it from a debugger, all you see is a number, which isn’t very helpful. There is no reliable way to iterate over all the int constants in a group, or even to obtain the size of an int group. In all that situation, enums can be your saviour. But there are also some disadvantages of enum. Enum takes more memory as compared to int.