Conclusion
It is not necessary to use enumerated types in your programs, in fact enumerated types did not exist in Java until relatively recently. It is perfectly feasible to use Strings in place of enums. There are, however, some real advantages to using enums:
• Enumerated types clearly identify the possible values for a field. If Strings are used it is not always immediately obvious what value should be used. For instance, should Tuesday be represented as Tuesday, TUESDAY or Tues.
• It is possible to associate extra information with each value, thereby creating more complex types.
• It is always possible to compare enums with the == operator: as you have seen this is not always possible with Strings.
• Although it may not be immediately obvious, it is possible for enums to implement an interface. This ensures enum values can be used wherever the corresponding interface is expected.