How to suppress Java compiler warnings for specific functions

前端 未结 5 867
暗喜
暗喜 2020-12-03 10:28

We are always taught to make sure we use a break in switch statements to avoid fall-through.

The Java compiler warns about these situations to help us not m

相关标签:
5条回答
  • 2020-12-03 10:39

    You could create a structure of 'if' statements in place of the switch. Might not be as visually pleasing however neither is warning supression.

    0 讨论(0)
  • 2020-12-03 10:40

    If you really, really must do this, and you are sure you are not making a mistake, check out the @SuppressWarnings annotation. I suppose in your case you need

    @SuppressWarnings("fallthrough")
    
    0 讨论(0)
  • 2020-12-03 10:43
    @SuppressWarnings("fallthrough")
    

    Java has always followed the C-style of switch statements, where you need to explicititly break out of a switch unless you wish to simply fall through and execute the code in the case below. This can be dangerous of course and errors of this kind can be very hard to track down. In the following example, case 1 lacks a break:

    @SuppressWarnings("fallthrough")
    public void fallthroughTest(int i)
    {
        switch (i)
        {
            case 1:
                // Execute both 1 and 2
            case 2:
                // Execute only 1
        }
    }
    
    0 讨论(0)
  • 2020-12-03 10:46

    Is the annotation @SuppressWarnings (javadoc) what you are looking for?

    For example:

    @SuppressWarnings("unchecked")
    public void someMethod(...) {
        ...
    }
    
    0 讨论(0)
  • 2020-12-03 10:47

    To complete other answer about SuppressWarnings:

    @SuppressWarnings("fallthrough")
    

    Try to supress all the fall-through warning at the compiler level is a bad thing: as you've explained, the cases where you need to pass through the warning are clearly identified. Thus, it should be explicitly written in the code (the @SuppressWarnings("fallthrough") annotation with an optionnal comment is welcome). Doing so, you'll still have the fall-through warning if you really forget a break somewhere elese in your code.

    0 讨论(0)
提交回复
热议问题