“Variable is never assigned” warning in IntelliJ I

2020-05-31 06:35发布

问题:

Java EE + IntelliJ Idea 2016.3: I've written a class and declared a private field with a @Inject annotation.

I have successfully got rid of the "unused declaration" notification from the "inspection results" window by adding javax.inject.Inject to settings -> editor -> inspections -> Java -> declaration redundancy -> unused declarations -> entry points -> annotations -> mark field as implicitly written when annotated by (based on this post).

Unfortunately the field is still underlined and a yellow marker is present on the scroll bar. Do I configure this separately or am I doing something wrong?

回答1:

There are two separate warnings. One says the field was never assigned a value, which is the one you have disabled. The other says the field was never used, which is the warning you are getting.

Add Inject to settings -> editor -> inspections -> java -> declaration redundancy -> unused declarations -> entry points -> annotations -> Mark as entry point if annotated by



回答2:

Highlight the field, type Alt + Enter "Windows" or ⌥⏎ "Mac" or Just click on the Light Bulb. Select the "Suppress for fields annotated by {annotation name}.



回答3:

It seems that it was a bug in IDEA. I've just updated to IDEA 2016.3.1 and now @Inject and @Resource annotations put in the "entry points" section do not work - they have to be put in the "fields" window (although when they are in "entry points" section I can still observe the "old" behavior i.e. annotated fields are not detected by code inspection yet they are underlined in the editor and yellow marker is visible).