문제

우리는 항상 우리가 사용하도록 배웁니다. 부서지다 낙상을 피하기위한 스위치 진술에서.

Java 컴파일러는 이러한 상황에 대해 사소한 (그러나 과감한) 오류를 만들지 않도록 도와줍니다.

그러나 저는 사례를 사용하여 기능으로 사용했습니다 (여기에 들어갈 필요는 없지만 매우 우아한 솔루션을 제공합니다).

그러나 컴파일러는 내가 알아야 할 경고를 가릴 수있는 엄청난 양의 경고를 촉발시킵니다. 나는 모든 낙상 경고를 무시하기 위해 컴파일러를 변경할 수있는 방법을 알고 있지만, 낙상이 일어나지 않는 장소를 놓치지 않도록 방법별로이를 구현하고 싶습니다.

어떤 아이디어?

도움이 되었습니까?

해결책

당신이 정말로, 정말로 이것을해야한다면, 당신은 실수를하지 않을 것이라고 확신합니다. @Suppresswarnings 주석. 나는 당신의 경우 당신이 필요하다고 생각합니다

@SuppressWarnings("fallthrough")

다른 팁

주석입니다 @SuppressWarnings (Javadoc) 무엇을 찾고 있습니까?

예를 들어:

@SuppressWarnings("unchecked")
public void someMethod(...) {
    ...
}

다른 답변을 완료합니다 SuppressWarnings:

@SuppressWarnings("fallthrough")

컴파일러 레벨에서 모든 낙상 경고를 억압하는 것은 나쁜 일입니다. 설명했듯이 경고를 통과 해야하는 경우가 명확하게 식별됩니다. 따라서 코드에 명시 적으로 작성해야합니다 ( @SuppressWarnings("fallthrough") 옵션 의견을 가진 주석을 환영합니다). 그렇게하면 코드의 엘레즈 어딘가에 휴식을 잊어 버린 경우 여전히 낙상 경고가있을 것입니다.

스위치 대신 'if'문의 구조를 만들 수 있습니다. 시각적으로 유쾌하지는 않지만 경고 억제는 아닙니다.

@SuppressWarnings("fallthrough")

Java는 항상 C 스타일의 Switch 문을 따랐으며, 아래의 경우 코드를 단순히 통과시키고 실행하려고하지 않는 한 스위치에서 명시 적으로 헤어질 필요가 있습니다. 이것은 물론 위험 할 수 있으며 이런 종류의 오류는 추적하기가 매우 어려울 수 있습니다. 다음 예에서는 사례 1이 휴식이 없습니다.

@SuppressWarnings("fallthrough")
public void fallthroughTest(int i)
{
    switch (i)
    {
        case 1:
            // Execute both 1 and 2
        case 2:
            // Execute only 1
    }
}
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top