내 프로그램에서 읽고 리소스에 대한 파일을 구문 분석합니다.텍스트 파일에서 읽고 텍스트를 비교 - Java
나는 다음 다른 문이 알려진 유형의 일치 여부를 확인하고 그렇지 않은 경우 오류가 발생하는 경우 간단하게 할, 자원 유형을 나타내는 문자열을 추출 :
if(type.toLowerCase() == "spritesheet") {
_type = ResourceType.Spritesheet;
} else if(type.toLowerCase() == "string") {
_type = ResourceType.String;
} else if(type.toLowerCase() == "texture") {
_type = ResourceType.Texture;
} else if(type.toLowerCase() == "num") {
_type = ResourceType.Number;
} else {
throw new Exception("Invalid Resource File - Invalid type: |" + type.toLowerCase() + "|");
}
내 나쁜 이름을 무시 나는이 호출 전에 유형 "spritesheet"를 설정하면 비 Descript를 예외,이 문은 항상 등 유형이 파일에서 읽을 때 "spritesheet"있는 경우에도, 다른 최종
java.lang.Exception: Invalid Resource File - Invalid type: |spritesheet|
at Resource.Load(Resource.java:55) //Final else.
을 것입니다 그것은 작동하므로 어떤 종류의 인코딩 오류가 있는지 궁금합니다. 내가 :)
감사합니다. P – Blam
@Blam 나는 대부분의 사람들이 적어도 한 번은 그렇게했다고 생각합니다. Hack, 몇 년 동안 전문적인 Java 개발을 해왔지만 아직도하고 있습니다. that on occasion : – Jon7
'=='와 함께'String'을 사용하는 것은 새로운 자바 프로그래머를 잡는 것들 중 하나입니다. 문자열 불변성으로 인해 자체 포함 된 프로그램을 작성할 때 종종 잘 작동하지만 실패 할 경우에는 실패합니다. @ 존은 올바른 답을 가지고 있으며 받아 들여야합니다. 여기에 약간의 자바 재미가있다. 위의 코드는 각 비교를'type.toLowerCase(). intern() == ...'으로 변경했다면 효과가 있었다. 나는 네가 그렇게한다고 제안하는 것이 아니고 너를 생각해라. – Paul