안드로이드 개발 질문/답변
(글 수 45,052)
String ABC ="###";
if(ABC+"1"==ABC+"1") ==>false가 되네요
ㄷㄷㄷ
if(ABC+""==ABC+"")==>false가 되네요
2011.12.31 21:11:17
비교의 대상이 뭔지를 먼저 고민해야합니다. 컴퓨터는 매우 냉정합니다. 오해하는건 사람이지 컴퓨터가 아닙니다.
String을 Value로 생각하는건 인간의 희망사항일뿐이죠. String 은 엄연한 Object이고 Object에서 비교는 동일한 Object를 가르키고 있느냐를 따지는거죠.(물론 연산자 오버로딩을 지원해서 원 의미를 왜곡하게 도와주는 언어체계도 있지만,,) 그것이 객체지향언어의 중요한 설계 철학중 하나인데, String을 위해 예외를 만드는건 더 큰 혼란을 몰고오죠.( 자바는 어짜피 연산자 오버로딩도 금지되어 있으니 더더욱... )
원래 String은 equals로 비교하셔야;;