Using @SuppressWarnings("unused") annotation on declaration section

java

Solution

If you reeeeealy want to keep all those unused constants, a quick and dirty trick would be;

public class MyClass {
//Variables
    private int counter;

@SuppressWarnings("unused")
    private static final class UnusedConstants{
        private final String ACCEPT = "Yes";
        private final String DENY = "No";            
        private final String TENTATIVE = "Maybe";
        private final String POSTPONE = "Later";     
   }
}

And i would make them static too, but your call.

EDIT: Or, what i think is much nicer:

public class MyClass {

    private enum Answer {

        ACCEPT ("Yes"),
        DENY ("No"),
        TENTATIVE("Maybe"),
        POSTPONE("Later");

        private final String answer;

        private Answer(String answer) {
        this.answer = answer;
        }

        public String toString() {
            return answer;
        }
    }
}    

This way you don't get the unused warning as long as you use at least one of the values.

Problem

I have a basic question relating to the `@SuppressWarnings("unused")` annotation. Basically, I would like to suppress unused warnings on a block of code in my declarations section of my class. I would prefer not to suppress unused warnings on the entire class. Currently, I am doing this: ``` public class MyClass { //Constants private final String ACCEPT = "Yes"; @SuppressWarnings("unused") private final String DENY = "No"; //Not currently used private final String TENTATIVE = "Maybe"; @SuppressWarnings("unused") private final String POSTPONE = "Later"; //Not currently used //Variables private int counter; .... ``` I find the above code to be a bit messy with the annotations thrown in randomly like that. What I would like to do is something like: ``` //Constants @SuppressWarnings("unused") { private final String ACCEPT = "Yes"; private final String DENY = "No"; //Not currently used private final String TENTATIVE = "Maybe"; private final String POSTPONE = "Later"; //Not currently used } //Variables private int counter; .... ``` This is, of course, illegal in Java as a block cannot be simply made like this. Its not a huge deal or anything, but I am curious if I am missing an obvious and elegant solution.

Original source