Using @Getter on Classes, Enums, etc

lombok annotations on enum
java enum with values
getter in enum
java getter
what is getter
enum with constructor java
java 8 enum
enum allargsconstructor

I came across a code where @Getter was used on an enum declaration, I want to know if it's possible to use @Getter over an enum declaration and what purpose it serves?

As far as I know, @Getter generates getter methods on member variables. Am I missing something?

Is it possible to annotate the class with @Getter as well?

If you check the Lombok's @Getter and @Setter Reference, you can see that:

You can also put a @Getter and/or @Setter annotation on a class. In that case, it's as if you annotate all the non-static fields in that class with the annotation.

This means when you put @Getter in the Class/Enum level, it will generate getters for all non static members on this Class/Enum, as if you put @Getter for all those members repeatedly.


To illustrate this with an example both thsese two codes are equivalent:

Code 1:

public enum MyEnum {
    private int member1;
    private int member2;

Code 2:

public enum MyEnum {
    private int member1;
    private int member2;

Here getter methods will be generated for both members.

Beginner's Guide to Java eNum, when a variable (especially a method parameter) can only take one out of a small set of possible values. class enum.Enum¶ Base class for creating enumerated constants. See section Functional API for an alternate construction syntax. class enum.IntEnum¶ Base class for creating enumerated constants that are also subclasses of int. enum.unique()¶ Enum class decorator that ensures only one name is bound to any one value.

Added later I think @cнŝdk answer is much better. So, please use it.

Originally wrote

@Getter, @Setter, and @Data annotations are provided by Lombok library. @Data will generate both setters and getters.

Yes, these annotations can be used with both class and enum.

If you are using maven then you can add Lombok as your dependency as given below:


To know more about Lombok please visit

Java Enums, should be list of constants and then other things like methods, variables and constructor. In this case, it would be wise to use an enum — like a normal Theme class or interface, it encapsulates the data of each theme instance under a unified pattern (the class or interface), which

If you use the Getter annotation, the constants are not important. But for all the other variables that you create there exists a getter method:

public enum Test {

    private int variable;

So in this example you get only a getter method for the variable.

Enumerated type, in Java applications. This Java Enum tutorial explains how to create and use Java Enums. More precisely, a Java enum type is a special kind of Java class. An enum can contain constants, methods etc. Java enums were You are not restricted to simple getter and setter methods. You can also create  JPA = Java Persistence API. It handles persistence of Enum classes with a simple annotation @Enumerated(EnumType.STRING) or @Enumerated(EnumType.ORDINAL) on the field. In this way you don't need to create a converter to each enum. – Allan Veloso Feb 3 at 23:06

We can annotate any field with @Getter and/or @Setter, to let lombok generate the default getter/setter automatically. Please refer here to get more details.

enum in Java, The one time getters are absolutely necessary is when the class you're writing is part of the public API of a publicly available library, because you want to maintain​  Use enumeration classes instead of enum types. 10/08/2018; 2 minutes to read +3; In this article. Enumerations (or enum types for short) are a thin language wrapper around an integral type. You might want to limit their use to when you are storing one value from a closed set of values. Classification based on sizes (small, medium, large) is a

Java Enums, public class EnumHandSignTest { public static void main(String[] args) { HandSign playerMove, Example: Below is a Scissor-Paper-Stone game using an enumeration. HEART , etc. enum is type-safe. int getSeconds() { // Getter return seconds; } } public class TrafficLightTest { public static void main(String[] args) { for  You can also put a @Getter and/or @Setter annotation on a class. In that case, it's as if you annotate all the non-static fields in that class with the annotation. You can always manually disable getter/setter generation for any field by using the special AccessLevel.NONE access level.

Is public final completely (not) ok in constant enum fields?, Most of the other programming languages like C, C++, and etc also provide support for enumerations. In In Java, enumerations defines a class type. @​Getter public class MyException extends RuntimeException { private  Java Enums. An enum is a special "class" that represents a group of constants (unchangeable variables, like final variables). To create an enum, use the enum keyword (instead of class or interface), and separate the constants with a comma. Note that they should be in uppercase letters:

Enum - Java Programming Tutorial, Class. Groovy classes are very similar to Java classes, and are compatible with private, static, etc) as in Java with some minor differences at the source level which are in less verbose code, since explicit getter and setter methods aren't needed. The list of possible targets is available in the ElementType enumeration. Better control of class attributes and methods; Class attributes can be made read-only (if you only use the get method), or write-only (if you only use the set method) Flexible: the programmer can change one part of the code without affecting other parts; Increased security of data