2016-08-11 5 views
2

최근에 Eclipse의 IntelliJ IDEA로 전환했으며 관리자가 정말 마음에 들었습니다. 내가 해결할 수없는임을 그들과 함께 문제로 실행 : Unused warningIntelliJ는 API 메서드에 대해 사용되지 않는 경고를 표시하지 않습니다.

:

을 나는 따라서 같은 표시된 사용되지 않는 방법을 포함, 다른 프로젝트의 API로 사용되는 일부 자바 프로젝트를 API 메소드에 대해이를 어떻게 억제 할 수 있습니까? @SuppressWarnings("unused")에 대한 대안이 있습니다. 이는 메소드 내부의 사용되지 않는 경고에 대한 경고를 표시하지 않으므로이 메소드가 현재 프로젝트에서 사용되지 않고 API 사용을 위해 설계되었다는 것을 독자에게 명확히하지 않습니까?

답변

4

@ 클래스를 인터페이스로 구현하도록 제안한 Sebastian의 제안은 좋은 디자인 관점에서이 문제를 해결하는 가장 좋은 방법 일 것입니다. 그러나 이것이 비실용적 인 경우 대안이 있습니다.

"사용하지 않은 선언"검사를 사용하면 무시할 진입 점을 구성 할 수 있습니다. 당신이 "주석을 구성 할 수의 일환으로.

Unused declaration Inspection Settings

그냥 하나, 당신이 공개 API 메소드를 주석 주석을 사용하는 사용자가 만든 라이브러리에서 하나 하나 검사를 구성합니다. 예를 들어, 여기에 내가 만든 @PublicApi 주석을 사용했으며, 방법이 이 아니고은 사용되지 않은 것으로 강조 표시되어 있습니다.그러나 foo 문자열은 아직 사용되지 않은으로 강조 표시됩니다 :

Code sample screenshot with annotation

대화 설정을 개방하는 대신 및 프로그래밍 flow에 미치는 영향을 제한하기 위해, 당신은 또한 빠른 수정 의도를 사용할 수 있습니다 "Unused Declaration"설정에 원하는 주석을 추가하십시오. 원하는 주석을 주석 후, 강조하지 않는 방법 (또는 클래스) 이름에 커서를 놓고 + 입력 Alt 키를 통해 "의도의 행동과 빠른 수정"팝업을 호출 또는 ⌘(또는 전구 아이콘 Quick Fix Icon 클릭)를 선택하여 "주석이 방법을 '{주석}'에 대한 억제 :

Quick Fix Screenshot

0

간단히 말해서, IntelliJ와는 아무런 관련이 없습니다. Javac은 Java 컴파일러가 요청할 경우이를 생성합니다. 메소드에이 주석이 필요하면 전체 주석이됩니다. 당신은 그냥 주석이 될 필드를 원하는대로하면, 그 다음이 가능합니다 :

@SuppressWarnings("unused") 
int iii = 0; 

요약하면, 방법 주석은 그 한 줄을 다룰 것입니다 필드 또는 명령 당을 배치, 전체 방법을 다룰 것입니다.

1

클래스에 대한 인터페이스를 작성하십시오. 인터페이스 메소드를 구현하는 메소드는 unused로 표시되지 않습니다. 대신 인터페이스의 사용되지 않는 메소드는 사용되지 않는 것으로 표시되지만 여기서는 메서드 본문이 없으므로 @SuppressWarnings("unused")을 안전하게 사용할 수 있습니다. 전체 인터페이스 위에 @SuppressWarnings("unused")을 쓸 수도 있습니다.

0

intellij가이 작업을 수행 할 수 있습니다. 경고를 표시하는 발생에 대해 Alt + Enter를 누르십시오. 일부 제안 사항은 필드 중 하나를 팝업으로 표시합니다. 제안의 끝 부분에 화살표 필드가 있습니다. 화살표 키를 사용하여 옵션으로 이동하고 오른쪽 화살표를 사용하여 다른 메뉴를 표시하십시오. 옵션 중 하나가 될 수 등 문에 대한 억제가 원인이됩니다 방법이를 억제하고 문이 표시되지 않습니다이 : 내가 IntelliJ에 의해 맹목적 제공되는 경고에주의하도록 촉구해야하지만

//noinspection unused 
int iii = 0; 

그들을 억압하라.

관련 문제