I was going through some application's source code and I came across this piece of code and I am not able to understand what this is.
public enum XStreamUserType {
MES_CONFIG_XSTREAM(MESConstants.MES_CONFIG_XSTREAM_USER, "MES_CONFIG_XSTREAM_USER", new XStream());
private int userTypeId;
private String userType;
private XStream xStream;
private XStreamUserType(int userTypeId, String userType, XStream xStream) {
this.userTypeId = userTypeId;
this.userType = userType;
this.xStream = xStream;
switch (this.userTypeId) {
case MESConstants.MES_CONFIG_XSTREAM_USER:
loadConfigReader();
break;
default:
}
}
What does this line mean?
MES_CONFIG_XSTREAM(MESConstants.MES_CONFIG_XSTREAM_USER,"MES_CONFIG_XSTREAM_USER", newXStream());
Anonymous User
14-Oct-2013In java enum can also have instance variables and constructors like a class.
Here enum XStreamUserType has three instance variables
while
is constructor.
MES_CONFIG_XSTREAM is enum variable(can be interpreted as object of a class), initialized as
ES_CONFIG_XSTREAM(MESConstants.MES_CONFIG_XSTREAM_USER, "MES_CONFIG_XSTREAM_USER", new XStream()); with values to its instance variables(as a constructor call).