2017-04-12 3 views
0

전체 오류 : 예기치 않은 결과가 발생할 수있는 로케일이있어서 이식성 문제가 발생합니다. 또한 사용자 지정 유효성 검사 루틴을 우회 할 수 있습니다.오류 : 다른 로케일을 가지고 있기 때문에 호출에서 이식성 문제가 발생합니다.

if ("paid".equals(type.toLowerCase())) { 
     return PaymentType.PAID.getDescription(); 
    } 

난 정말 문제가 여기에이 코드를 함께해야하는지 이해가 안 :

나는 내 코드의이 부분에 따라이 문제를 얻을 내 코드를 통해 도구를 실행?

+0

나는 전화가 무엇인지, 어디서 어떻게 불려 가고 있는지 등에 대한 더 많은 컨텍스트 정보를 제공해야한다고 생각합니다. 현재 전체 그림을보기가 정말로 어렵습니다. –

+0

"도구"- 왜 어떤 것을 말하지 않으시겠습니까? – slim

답변

2

toLowerCase()toUpperCase() 메서드는 기본 로캘을 사용합니다. 이것은 로케일과 변환중인 문자열의 문자에 따라 다른 결과를 줄 수 있습니다. 그것은 일반적인 인코딩 문제와 비슷합니다 (드문 문자로 작업하지 않는 한 엉덩이에 물지 않을 가능성은 적습니다).

명시 적으로 toLowerCase(Locale.ENGLISH)을 지정하거나 "paid".equalsIgnoreCase(type)을 사용하여 경고를 피할 수 있습니다.

+0

나는 조금 더 봤 거든 이것이 바로 답이 될 것 같다. – Nali