问题
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).
来源:https://stackoverflow.com/questions/41124617/variable-is-never-assigned-warning-in-intellij-idea-can-be-suppressed-only-pa