2014-05-15 1 views
-1

String 상수의 그룹을 enum으로 바꾸 겠지만 상수는 있어야하는 모든 곳에서 사용되지 않았습니다. 따라서 someValue.equals(FOO_CONST)someValue == MyEnum.FOO으로 대체하고 있습니다. 사용 된 모든 장소를 수정하는 것은 쉽습니다. 단지 상수를 삭제하면 컴파일러가 문제의 위치를 ​​알려줍니다. 그러나 컴파일러가 변경된 후에 오류로 식별 할 수없는 "foo".equals(someValue)과 같은 비트도 있습니다.문자열 상수를 enum으로 변환 할 때 잠재적 인 오류를 감지

변환 중에 누락 된 이러한 인라인 리터럴로 인해 발생할 수있는 잠재적 인 버그를 발견 할 수있는 방법이 있습니까? (나는 이클립스를 사용하고있다)

+0

"value"가 st이면 ill String 그럼, 오브젝트의 참조를 비교하고 있기 (위해) 때문에, 항상 false를 돌려주는 값 == MyEnum.VALUE는 사용하지 말아주세요. –

+0

나는 명확하지 않았지만, 'value'를 'MyEnum'의 인스턴스로 변경하고, 비교를 위해 열거 형 값을 사용하는 것에 대해서도 말하고있다. –

+0

관련 항목 : http://stackoverflow.com/a/2937561/1393766 – Pshemo

답변

1

FindBugs는 equals(Object)에 대한 호출에 대한 버그를보고한다. 두 개의 객체가 같은 유형이 아니기 때문에이 문제를 잘 처리한다.

그들은에서 버그 탐색기에 표시됩니다

: 같음에

  • 무서운
    • 높은 신뢰
      • 전화() 비교 다른 유형
관련 문제