2017-03-25 20 views
0

Iterable 인터페이스를 구현하는 세 가지 Java 클래스가 있습니다. 그 중 두 개는 iterator() 메서드에 대해 정확히 동일한 구현을 갖기 때문에 IntelliJ에서 코드를 중복 된 것으로 플래그 지정합니다.IntelliJ에서 코드 중복 분석 및 소스 생성

The code duplication soft warning yielded by IntelliJ

내가 자바 (8)를 사용하고 있기 때문에, 내가 인터페이스의 수준에서 "기본"으로 구현을 밀어 수 있지만, 그 또한 정말 더 알아주는 인터페이스에 개인 필드를 추가 필요 필요한 경우보다 더 많은 정보를 제공합니다 (Java 8을 처음 사용하므로 Java 8에서도 인터페이스 수준에서 필드를 선언하거나 초기화 할 수 있는지 여부를 알 수 없습니다). 비록 내가 그렇게 할지라도 iterator()에 대한 다른 구현으로 공통 인터페이스를 구현하는 클래스가 더 많이있을 것입니다.

나는 다음을 말한다 인 IntelliJ 문서쪽으로 this link를 발견 :

검사 설정 페이지에서 생성으로 표시된 소스에서 중복 된 코드를 무시, 그렇게 확인란 를 선택하려면 [.. .]

불행하게도 사실에도 불구하고이 확인란은 참으로 내 검사 설정 페이지에 나타나지 않습니다 :

enter image description here

이 확인란을 선택한 후에도 문제가 지속됩니다. 나는 위에 게시 된 링크에서 "생성 된 소스"가 무엇을 의미하는지 확신 할 수 없으며 일부 도움을 요청합니다.

나는 IntelliJ 2017.1 Ultimate Edition을 실행하고 있습니다.

+0

'생성 됨'은 * 생성 된 소스 *로 표시된 루트에있는 자동 생성 된 소스를 의미합니다. 왜 그것이 당신의 코드에 적용되어야한다고 생각합니까? 특정 코드 조각에 대해이 검사를 원하지 않으면 [억제하십시오] (https://www.jetbrains.com/help/idea/2016.3/suppressing-inspections.html). – CrazyCoder

+0

아, 그 링크는 다소 도움이되었지만,이 특별한 오류 때문에 intelliJ가 나에게 클래식 라이트 전구 팝업 방식을주지 않았기 때문에 경고를 억압 할 수 없다는 것을 알아야합니다. https://www.dropbox.com을 참조하십시오. /home/Screenshots?preview=inspectionCannotBeSuppressed.png. 자세한 내용은 아래의 응답을 참조하십시오. – Jason

답변

0

나는 위의 CrazyCoder의 응답 @ 사용 발견 및 IntelliJ에 의해 제공으로, 소위 "코드 분석"을 실행하고 다음과 같은 기능을 발견 : "비활성화 검사"에

enter image description here

클릭을 손에있는 문제를 해결하지만 일반적으로 바람직하지 않습니다. 같은 소스 파일 방법에 대해서 어떻게 든 "약한 경고"만 유지할 수 있다면 정말 좋을 것 같습니다. public 클래스 정의에 걸쳐 코드를 복제하면 대개이 경우와 같이 내가하는 일을 알고 있기 때문입니다.