Why does Java allow null value to be assigned to an Enum -
this more of design question. (so, no code. post code of creating enum , assigning null if want me it. :)) i've been thinking lot lately can't come 1 reason. enum constants implicitly static , final. enum meant - "i can take value of 1 of constants present in me". why allow enum have null value?. why not implicitly default enum's value enum.default or enum.none?. isn't better approach allowing enum null?
firstly null
means non-existence of instance. providing default constant default
or none
, change meaning. secondly, why need default represent seems non-existent? purpose of null
. basically, have initialize , store object, shouldn't exist whatsoever.
btw, it's not language choice. it's on how implement enum. can provide constant default
, or unknown
in enum, , avoid assignment of null
reference in code. famously known null object pattern. saying null
assignment should compiler error, say, since enum
anyways compiled class
, valid use null
represent non-existence of instance.
one pitfall of allowing null
though usage of enum
in switch-case
. below code throw npe
:
public class demo { enum color { white, black; } public static void main(string[] args) { color color = null; switch (color) { // npe here case white: break; case black: break; } } }
Comments
Post a Comment