programing

검사 스타일 : "숨겨진 필드"오류 해결 방법

copyandpastes 2021. 1. 19. 08:17
반응형

검사 스타일 : "숨겨진 필드"오류 해결 방법


이 체크 스타일 오류가 발생합니다.

'serverURL' hides a field

이것에

 private static void setServerURL(final String serverURL) {
    Utility.serverURL = serverURL;
 }

그 이유는 무엇이며 어떻게 해결할 수 있습니까?


serverURL이 메소드에 사용할 수 있는 변수가 이미 정의 되어 있습니다 (수락하는 형식 매개 변수에 추가). 이것을 "그림자"라고합니다.

나는 대부분의 자바 프로그래머가이 체크를 해제한다고 생각한다. 그게 그렇게 헷갈 리지 않기 때문이다.

예를 들어 다음과 같이 오류가 발생합니다.

public class Foo {
  private int bar = 0;

  public void someMethod(int bar) {
    // There are two bars!  All references in this method will use the parameter bar,
    // unless they are explicitly prefixed with 'this'.
    this.bar = bar;
  }
}

생성자 및 setter에서 set 필드 이름이 setter 매개 변수 이름과 동일하다는 것이 매우 일반적이라고 생각합니다. 이것이 내가이 구성을 권장하는 이유입니다.

<module name="HiddenField" >
    <property name="ignoreSetter" value="true" />
    <property name="ignoreConstructorParameter" value="true" />
</module>

이런 식으로 다른 숨겨진 필드 케이스는 여전히 금지됩니다.


매개 변수와 정적 필드의 이름이 동일합니다. 그중 하나의 이름을 변경하십시오. 어떤 사람들은 모든 매개 변수 앞에 p. 그러면 serverURL필드 이름과 pServerURL매개 변수 이름이 있습니다. 또는 단순히 수표를 끌 수 있습니다.


이클립스에서 비활성화하여 해결했습니다. 이 페이지에 도착했을 때 어떻게해야하는지 찾고있었습니다. 상위 10 개 Google 쿼리에서 답을 찾지 못했기 때문에 어려운 방법을 찾아야했습니다. 그것을 찾고있는 사람을 위해 다음과 같이했습니다.

열다

Eclipse> 환경 설정> 체크 스타일

사용중인 체크 스타일 구성을 찾으십시오 (이를 설정했거나 기본값을 사용하고있을 수 있습니다.이 경우 자신의 복사본을 만든 다음 편집하는 것이 더 좋습니다). 그것을 선택하고 오른쪽의 구성 버튼을 클릭하십시오. 목록에서 다음 구성을 찾으십시오.

코딩 문제> 숨겨진 필드

구성을 엽니 다 (UI에 '열기'라는 버튼이 있음).

'매개 변수 선언'을 선택 취소합니다. 확인을 클릭하고 확인을 클릭 한 다음 확인을 클릭합니다.


ur 메서드에서 매개 변수 이름을 변경하십시오.

private static void setServerURL(final String serverURL) {
Utility.serverURL = serverURL;
}

...에

private static void setServerURL(final String serverURLXYZ) {
Utility.serverURL = serverURLXYZ;
}

즐겨...

지가 파텔


약간의 멍청한 오류이지만 여기에 수정하기 위해 setter에 넣은 쉬운 수정이 있습니다.

였다:

public void setName(String name) {
  this.name = name;
}

업데이트 됨 :

public void setName(String val) {
  this.name = val;
}

참조 URL : https://stackoverflow.com/questions/7776046/checkstyle-how-to-resolve-hidden-field-error

반응형