“Variable is never assigned” warning in IntelliJ IDEA can be suppressed only "partially"

41.1k views Asked by At

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?

5

There are 5 answers

4
Marcelo Glasberg On BEST ANSWER

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

0
timguy On

Update 2023

I had this issue before, but the screens look different now:

  • I don't have Suppress unused warning if annotated...
  • Now, it is Assume fields annotated by ...@Autowired as implicitly written

The first option didn't appear. I had to select the variable name, instead of the type.

Context Actions Dialog

0
rychu On

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).

2
prime On

You can just choose to ignore it in some cases where it actually make sense,

enter image description here

What you can do is hover the affected area and press Alt + Enter in "Windows" or alt/option/⌥ + Enter in "Mac", and chose to suppress it.

You'll see,

enter image description here

3
Ronny Shibley On

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}.