programing

Java에서 유효한 @Suppress Warnings 경고 이름 목록은 무엇입니까?

prostudy 2022. 8. 28. 12:03
반응형

Java에서 유효한 @Suppress Warnings 경고 이름 목록은 무엇입니까?

입니까?@SuppressWarnings"Java?

" " " " "("")@SuppressWarnings("").

IDE 또는 컴파일러에 따라 다릅니다.

다음은 이클립스 갈릴레오의 목록입니다.

  • all: 모든 경고를 억제합니다.
  • 복싱/언박싱 조작과 관련된 경고를 억제하는 복싱
  • 주조 작업과 관련된 경고를 억제하기 위한 주조
  • 폐지된 주석과 관련된 경고를 억제하려면 dep-ann
  • 권고 해제와 관련된 경고를 억제하기 위한 권고 해제
  • 폴스루: 스위치스테이트먼트의 브레이크 누락에 관한 경고를 억제합니다.
  • 마지막으로 반환되지 않는 차단에 대한 경고를 억제합니다.
  • 변수를 숨기는 로컬에 대한 경고를 억제하기 위해 숨김
  • incomplete-switch: 스위치스테이트먼트 내의 엔트리 누락에 관한 경고를 억제합니다(Enum 대소문자).
  • nls: nls 이외의 문자열 리터럴에 대한 경고를 억제합니다.
  • null: null 분석과 관련된 경고를 억제합니다.
  • 권장되지 않거나 금지된 참조의 사용과 관련된 경고를 억제하는 제한
  • serial: serialVersion 누락과 관련된 경고를 억제합니다.시리얼화 가능한 클래스의 UID 필드
  • static-access: 부정한 스태틱액세스에 관한 경고를 억제합니다.
  • synthetic-access: 내부 클래스로부터의 최적화되지 않은 액세스와 관련된 경고를 억제합니다.
  • 선택되지 않은 작업에 대한 경고를 억제하려면 선택되지 않음
  • unqualified-field-access 필드 액세스: 필드 액세스에 대한 경고를 억제합니다.
  • 사용되지 않는 코드에 대한 경고를 억제하기 위해 사용되지 않음

Indigo 목록 추가:

  • javadoc을 사용하여 javadoc 경고와 관련된 경고를 억제합니다.
  • rawtypes: rawtype 사용에 대한 경고를 억제합니다.
  • static-displays: static으로 선언될 수 있는 메서드에 대한 경고를 억제합니다.
  • super: 슈퍼 호출 없이 메서드를 재정의하는 것과 관련된 경고를 억제합니다.

Juno 목록 추가:

  • 리소스 유형 Closeable 리소스 사용과 관련된 경고를 억제합니다.
  • 동기화된 메서드를 덮어쓸 때 동기화 누락으로 인한 경고를 억제하는 sync-module

케플러와 루나는 주노(목록)와 동일한 토큰 목록을 사용합니다.

다른 것들은 비슷하지만 다양합니다.

모든 값이 허용됩니다(인식되지 않은 값은 무시됩니다).인식되는 리스트는 컴파일러에 따라 다릅니다.

Java 튜토리얼에서 unchecked ★★★★★★★★★★★★★★★★★」deprecationJava Language Specification(Java 언어 사양) 2개입니다.이치노

모든 컴파일러 경고는 카테고리에 속합니다.Java Language Specification(Java 언어 사양)에는 권장 해제와 선택 취소의 두 가지 범주가 나열됩니다.

Java Language Specification(Java Language Specification) 의 특정 섹션이 버전에 따라 일치하지 않습니다.Java SE 8 사양서unchecked ★★★★★★★★★★★★★★★★★」deprecation는 섹션 9.6.4.5. @SuppressWarnings9.6.4.6 @Depreceded 에 각각 컴파일러 경고로 기재되어 있습니다.

Sun을 실행합니다.javac -X에 해당 버전에서 인식되는 모든 값의 목록을 나타냅니다.은 15.0_17로 나타납니다.

  • 모든.
  • 폐지.
  • 체크되어 있지 않다
  • 폴스루
  • 경로.
  • 시리얼
  • 마침내.

리스트는 컴파일러 고유의 것입니다.Eclipse에서 지원되는 값은 다음과 같습니다.

  • all비권장 코드 내부에서도 비권장 폐지
  • allJavadoc이 잘못되었거나 javadoc이 없습니다.
  • assertIdentifier 식별자로 사용되는 아사트의 발생
  • 자동 복싱 변환
  • charConcat(문자 배열이 문자열로 명시적으로 변환되지 않고 문자열 연결에 사용되는 경우)
  • 조건우발적인 부울 할당 가능
  • constructorName 메서드와 constructor 이름
  • dep-ann 누락 @사용되지 않는 주석
  • 폐지된 유형 또는 폐지된 코드 이외의 멤버의 폐지된 사용
  • 권장되지 않은 액세스 규칙과 일치하는 유형의 사용을 권장하지 않음
  • emptyBlock 문서화되지 않은 빈 블록
  • enum Switch, 불완전한 스위치미완전한 열거 스위치
  • 실패할 가능성이 있는 경우
  • 필드다른 변수 숨기기 필드
  • finalBound type 파라미터(최종한계 포함)
  • 마지막으로 정상적으로 완료되지 않는 블록
  • 금지된 액세스 규칙과 일치하는 유형의 사용이 금지됨
  • 필드에 대한 매크로 숨기기, localHiding, typeHiding 및 maskedCatchBlock
  • 간접스태틱 멤버에 대한 간접 참조
  • intf 슈퍼 인터페이스로 사용되는 주석 유형
  • intfNonInherited 인터페이스 상속되지 않은 메서드 호환성
  • javadoc이 잘못되었습니다.
  • local다른 변수 숨기기
  • maskedCatchBlocks 숨겨진 캐치 블록
  • nls non-nls 문자열 리터럴(태그 부족 //$NON-NLS-)
  • no Effect 아무 효과 없이 할당
  • null 가능성 누락 또는 다중 null 체크
  • nullDereference에서 null 검사가 누락
  • @over-ann 누락 @Override
  • param매개변수에 할당
  • pkgDefaultMethod가 package-default 메서드를 덮어쓰려고 시도했습니다.
  • raw type의 raw usage a(파라미터화된 유형의 raw 사용)
  • 세미콜론이 불필요한 세미콜론 또는 빈 문
  • 직렬 누락 serialVersionUID
  • specialParam다른 필드를 숨기는 생성자 또는 setter 매개 변수
  • indirectStatic 및 staticReceiver용 스태틱액세스 매크로
  • 정적 수신기를 사용하여 정적 필드를 가져오거나 정적 메서드를 호출하는 경우 static Receiver
  • 슈퍼 호출을 하지 않고 메서드를 오버라이드하는 것
  • suppress @Suppress Warnings 사용 안 함
  • synthetic Access, innerclass에 대한 통합 액세스를 수행할 때 synthetic-access
  • 작업 소스 코드의 작업 태그 지원 사용
  • type다른 유형 숨기기 유형 매개 변수
  • 선택되지 않은 유형 작업
  • 불필요한 Else 불필요한 else 절
  • unqualified-field-access, unqualified필드에 대한 unqualified 참조
  • unusedArgument, unusedImport, unusedLabel, unusedLocal, unusedPrivate 및 unused의 미사용 매크로던져진
  • unusedArgument unused 메서드 인수
  • 사용하지 않는 가져오기 참조 가져오기
  • unusedLabel 미사용 라벨
  • 미사용 로컬 미사용 로컬 변수
  • unusedPrivate 미사용 개인 멤버 선언
  • unused사용되지 않은 thrown 선언된 예외 발생
  • 불필요한 캐스트/인스턴스 동작 확인 unuseTypeCheck
  • vararargsCast vararargs 인수에는 명시적 캐스트가 필요합니다.
  • warning @Suppress Warnings의 처리되지 않은 경고 토큰

Sun JDK(1.6)에는 지원되는 경고 목록이 더 짧습니다.

  • 폐지 감가상각항목의 사용을 확인합니다.
  • 선택되지 않은 변환 경고에 대해 Java 언어 사양에 의해 의무화된 자세한 내용을 제공합니다.
  • serial 누락된 serialVersion에 대한 경고시리얼 가능한 클래스의 UID 정의.
  • finally 정상적으로 완료할 수 없는 절에 대해 최종적으로 경고합니다.
  • fall through 스위치블록에 폴스루 케이스가 없는지 확인하고 발견된 경우 경고 메시지를 표시합니다.
  • 경로 환경 경로(예: 클래스 경로)에 존재하지 않는 경로가 있는지 확인합니다.

Mac에 사용할 수 있는 최신 javac(1.6.0_13)에는 다음과 같은 지원되는 경고가 있습니다.

  • 모든.
  • 출연자들
  • 폐지.
  • 제로
  • 체크되어 있지 않다
  • 폴스루
  • 경로.
  • 시리얼
  • 마침내.
  • 오버라이드

은 ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★.@SuppressWarnings("WeakerAccess")IntelliJ에서 사용하는 것보다 약한 액세스 수식자를 가져야 한다고 생각될 때 불평하는 것을 방지합니다.몇을 공개해야 테스트를 지원하는 방법도 있습니다.@VisibleForTesting이치노

ETA: "Anonymous"는 @MattCampbell linked 페이지에 다음과 같은 매우 유용한 메모를 남겼습니다.

이 목록을 설명하는 용도로 사용할 필요는 없습니다.인텔리J는 사용자가 요청하면 자동으로 Suppress Warnings를 추가합니다.내가 기억하는 한 많은 릴리즈에서 이 작업을 수행할 수 있었습니다.

경고가 있는 위치로 이동하여 Alt-Enter를 입력합니다(또는 표시된 경우 검사 목록에서 선택합니다).메뉴가 뜨면 경고를 표시하고 수정을 제안합니다(예를 들어 경고가 "Method may static"인 경우 IntelJ가 수정을 제안합니다). "Enter"를 선택하는 대신 오른쪽 화살표 버튼을 사용하여 서브메뉴에 액세스하면 "Edit inspection profile setting" 등의 옵션이 있습니다.이 목록의 맨 아래에는 "클래스에 대한 모든 검사 억제", "클래스에 대한 검사 억제", "메서드에 대한 검사 억제", 경우에 따라 "문장에 대한 검사 억제" 등의 옵션이 있습니다.리스트의 마지막에 표시되는 것을 원할 가능성이 있습니다.이 중 하나를 선택하면 해당 경고를 억제하는 @SuppressWarnings 주석(또는 경우에 따라서는 주석)이 코드에 추가됩니다.IntelliJ는 선택한 경고에 따라 선택하기 때문에 추가할 주석을 추측할 필요가 없습니다.

에 띄었다.//noinspectionIntelliJ에서 자동 생성 가능

  • 이미 계획이 없는지 확인하세요.@SuppressWarninigs발언 전에
  • 이제 특정 항목을 자동으로 생성할 수 있습니다.//noinspectionAlt+Enter를 눌러 경고를 선택한 다음 오른쪽 화살표 키를 사용하여 억제 대상...을 확인합니다.선택

IntelliJ의 "스위치에 케이스 라벨이 너무 적다"고 경고하는 것을 억제하려고 했습니다.인텔리J의 완전한 목록을 찾지 못했습니다.@SuppressWarning서포트하지만//noinspection날 위해 묘기를 부렸지

Android-Studio 관련 경고(SynchronizeOnNonFinalField 등)가 훨씬 더 완전한 목록인 것 같습니다.

https://jazzy.id.au/2008/10/30/list_of_suppresswarnings_arguments.html

오, 이제 SO의 지침은 SO의 제한과 모순된다.한편으로는 링크만 제공하는 것이 아니라 목록을 복사해야 합니다.한편, 이것은 최대 허용 문자수를 초과합니다.그러니 연결이 끊어지지 않길 바라자.

JSL 1.7

Oracle 문서에는 다음과 같은 내용이 기재되어 있습니다.

  • unchecked: 체크되지 않은 경고는 "체크되지 않음" 문자열로 식별됩니다.
  • deprecation: Java 컴파일러는 @DeppressWarnings(deprecati)라는 주석으로 선언에 주석을 붙이는 유형, 메서드, 필드 또는 컨스트럭터가 사용되는 경우(즉, 오버라이드, 호출 또는 이름으로 참조되는 경우) 권장 해제 경고를 생성해야 합니다.단, [...]는 예외로 합니다.on"; 또는

그런 다음 구현에서 다음과 같은 사항을 추가하고 문서화할 수 있음을 설명합니다.

컴파일러 벤더는 이 주석 유형과 함께 지원되는 경고 이름을 문서화해야 합니다.벤더는 여러 컴파일러에서 동일한 이름을 사용할 수 있도록 협력할 것을 권장합니다.

IntelliJ suppress 파라미터의 마스터리스트는 https://gist.github.com/vegaasen/157fbc6dce8545b7f12c에 있습니다.

꽤 포괄적으로 보입니다.부분:

Warning Description - Warning Name

"Magic character" MagicCharacter 
"Magic number" MagicNumber 
'Comparator.compare()' method does not use parameter ComparatorMethodParameterNotUsed 
'Connection.prepare*()' call with non-constant string JDBCPrepareStatementWithNonConstantString 
'Iterator.hasNext()' which calls 'next()' IteratorHasNextCallsIteratorNext 
'Iterator.next()' which can't throw 'NoSuchElementException' IteratorNextCanNotThrowNoSuchElementException 
'Statement.execute()' call with non-constant string JDBCExecuteWithNonConstantString 
'String.equals("")' StringEqualsEmptyString 
'StringBuffer' may be 'StringBuilder' (JDK 5.0 only) StringBufferMayBeStringBuilder 
'StringBuffer.toString()' in concatenation StringBufferToStringInConcatenation 
'assert' statement AssertStatement 
'assertEquals()' between objects of inconvertible types AssertEqualsBetweenInconvertibleTypes 
'await()' not in loop AwaitNotInLoop 
'await()' without corresponding 'signal()' AwaitWithoutCorrespondingSignal 
'break' statement BreakStatement 
'break' statement with label BreakStatementWithLabel 
'catch' generic class CatchGenericClass 
'clone()' does not call 'super.clone()' CloneDoesntCallSuperClone

SonarLint 를 사용하고 있는 경우는, 메서드를 상회하거나, Squid 문자열 전체를 클래스 합니다.@SuppressWarnings("squid:S1172인치)

언급URL : https://stackoverflow.com/questions/1205995/what-is-the-list-of-valid-suppresswarnings-warning-names-in-java

반응형