답변:
그 toString()
방법 을 호출함으로써 .
이 순서와 같은 순서로이 순서의 문자를 포함한 캐릭터 라인을 돌려줍니다. 문자열의 길이는이 시퀀스의 길이입니다.
여기에는 약간의 문제가있는 미묘한 문제가 있습니다.
이 toString()
메소드는의 기본 구현을 갖습니다 Object
. CharSequence
인터페이스입니다. toString()
메소드는 해당 인터페이스의 일부로 표시 되지만 컴파일 타임에는 CharSequence
toString()
메소드 를 재정의하고 메소드의 javadoc이 메소드에 적용한 추가 제한 조건을 준수 하도록 강제하는 것은 없습니다 toString()
. 즉,에서 반환 한 순서대로 문자를 포함하는 문자열을 반환해야합니다 charAt()
.
IDE는 아마도 재정의 해야한다는 것을 상기 시켜서 도움을주지 않습니다 toString()
. 예를 들어, IntelliJ에, 이것은 당신이 새로운 만들 경우 당신이 볼 것입니다 CharSequence
: 구현 http://puu.sh/2w1RJ를 . 의 부재에 유의하십시오 toString()
.
당신에 의존하는 경우 toString()
임의에 CharSequence
, 그것은 해야 제공된 작업 CharSequence
구현이 제대로 자신의 일을했다. 그러나 불확실성을 완전히 피하려면 a StringBuilder
및을 사용해야합니다 append()
.
final StringBuilder sb = new StringBuilder(charSequence.length());
sb.append(charSequence);
return sb.toString();
StringBuilder
하면 예상대로 수행하지 못할 수도 있습니다. 같은과 같은 다른 인터페이스에 간다 List
거나 Set
, 특히 자신 equals()
과 hashCode()
오버라이드 (override)하지 않고 컴파일하지만 방법이 있어야 계약에 따라 오버라이드 (override)합니다.
String.valueOf ()를 직접 사용할 수 있습니다
String.valueOf(charSequence)
이것은 실제로 toString을 호출하기 전에 toString()
null 검사를 수행하는 것과 같습니다 charSequence
.
이것은 메소드가 a charSequence
또는 null
value를 리턴 할 때 유용 합니다.
charSequence
널 (null)이 다음 문자열이 반환됩니다 "null"
하지 null
.
setText(CharSequence)
가 필요한 것을하지 않습니까?