결과 "놀이." 그러나 if 문에서 비교를 수행 할 때마다 toString()
이 있든 없든 항상 실패합니다. 나는 무엇을 이해하지 못합니까? 대신 같은 ==
를 사용구문 분석 안드로이드 음성 인식이 지금까지 내 코드입니다
답변
: if(matches.get(0).toString() == playString)
사용 .equals()
같은 : 당신의 왜의 if(matches.get(0).toString().equals(playString)
주기 대답.
연산자 ==는 두 개의 객체 참조 변수가 객체의 동일한 인스턴스를 참조하는지 확인합니다.
.equals() 메서드는 서로 비교되는 두 개체가 동일한 지 여부를 테스트하지만 같은 개체의 인스턴스가 정확히 같을 필요는 없습니다.
예시 1 : 상기 코드
Integer i = new Integer(10);
Integer j = i;
. i == j는 i와 j가 모두 같은 객체를 참조하기 때문에 true입니다.
예 2 : 위의 코드에서
Integer i = new Integer(10);
Integer j = new Integer(10);
난 ==들은 모두 10의 값을 갖지만, 그들은 다른 두 물체가 때문에 j는 거짓이다. 그들은 두 개의 다른 물체를 있지만, 그들은 동일한 번호를 나타낸다는 사실에 상응하기 때문에
또한, 상기 코드에서, i.equals (j)는
완벽한, 감사합니다 !!! –
투표를 많이 부탁드립니다;) – Waqas
(10)가 완벽하게 작동 있다는 사실! 이유를 설명해 주시겠습니까? –