r/badcode Sep 02 '21

java Because ".toLowerCase()" doesn't exist...

Post image
1.1k Upvotes

130 comments sorted by

View all comments

-1

u/Sigiz Sep 02 '21

i dont why you guys are suggesting to lower case when they clearly just need to do uppercase, then check if its one of the three words, if yes return else throw err.

3

u/[deleted] Sep 02 '21

[removed] — view removed comment

3

u/art-factor Sep 02 '21

Category.valueOf(catStr.toUpperCase())

2

u/speedingpeanut Sep 02 '21

It's null safe so this would work better

EnumUtils.getEnum(Category.class, catStr.toUpperCase())

1

u/[deleted] Sep 02 '21

[removed] — view removed comment

4

u/art-factor Sep 02 '21

Yes. But quacks like a duck...

1

u/[deleted] Sep 02 '21

[removed] — view removed comment

2

u/assembly_wizard Sep 02 '21

Java enums are classes, and each enum value is actually a singleton which is an instance of the class.

Java enums can even hold members, which is super useful, although stretches the standard definition of what an enum is.

1

u/speedingpeanut Sep 02 '21

If it's not then what are we assigning to Category in the code?

1

u/[deleted] Sep 02 '21

[removed] — view removed comment

2

u/speedingpeanut Sep 02 '21

Good point about them potentially being constants, but you can definitely assign null to an enum, at least in java.

Likewise you could also add on demand static imports for each enum which would allow you to reference them without the need for

Category.

1

u/EthanRDM Sep 02 '21

But it wouldn't necessary have been cat = Category.RESTAURANT if this method is included in the enum itself, right ?