Issue
We upgraded the Java version from 8 to 11 but I got compile errors of getter/setter methods where I implemented the POJO classes with Lombok's Getter and Setter Annotations.
Is there a way to use Lombok's @Data
annotation which provides getter and setter without implementing them at Java 11?
Currently, I am facing the error:
unable to find getStoreName()
where storeName
was declared as a global variable in the class with @Data Lombok annotation above the class.
Solution
TL;DR
Upgrade Lombok as a dependency and as a IDE plugin (IntelliJ, NetBeans, Eclipse) and enable Annotation Processing in IDEs settings.
Latest version of Lombok and/or IntelliJ plugin perfectly supports Java 11.
https://projectlombok.org/changelog
v1.18.4 (October 30th, 2018)
- ...
- PLATFORM: Many improvements for lombok's JDK10/11 support.
- ...
https://github.com/mplushnikov/lombok-intellij-plugin
Provides support for lombok annotations to write great Java code with IntelliJ IDEA.
Last version (0.23) released on 17.12.2018
...
- Tested and supports IntelliJ versions: 2016.2, 2016.3, 2017.X, 2018.X
...
Lombok project dependency
Make sure you have Lombok dependency added to your project. This plugin does not automatically add it for you.
Please Note: Using newest version of the Lombok dependency is recommended, but does not guarantee that all the features introduced will be available. See Lombok changelog for more details.
...
So please update your lombok/plugin version to the latest ones. Should work like a charm.
Answered By - Mikhail Kholodkov
Answer Checked By - Candace Johnson (JavaFixing Volunteer)