>  기사  >  Java  >  Java에서 valueOf와 toString,(String)의 차이점

Java에서 valueOf와 toString,(String)의 차이점

零下一度
零下一度원래의
2017-05-25 14:53:572048검색

실제 자바 프로젝트 개발 및 적용에서는 객체를 문자열로 변환하는 기본 기능을 활용해야 하는 경우가 많습니다. 이 문서에서는 일반적으로 사용되는 변환 방법에 대한 요약을 제공합니다. 일반적으로 사용되는 메소드에는 Object.toString(), (String) 변환할 객체, String.valueOf(Object) 등이 있습니다. 이러한 방법은 아래에서 하나씩 분석됩니다.


방법 1: Object.toString() 메서드 사용은 아래를 참조하세요. 예:
객체 객체 = getObject();
System.out.println(object.toString());

이 사용 방법에서는 java.lang.Object 클래스에 공용 메소드 .toString()이 있으므로 엄밀한 의미에서는 모든 Java 객체에 대해 이 메소드를 호출할 수 있습니다. 그러나 이를 사용할 때 객체는 null 값이 아니어야 합니다. 그렇지 않으면 NullPointerException이 발생합니다. 이 메서드를 사용할 때 일반적으로 파생 클래스는 Object의 toString() 메서드를 재정의합니다.

방법 2: 유형 변환(String) 객체 방법을 사용합니다. 유형 변환. 객체를 문자열 유형 값으로 변환합니다. 이 방법을 사용할 때 유형이 String 유형으로 변환 가능해야 한다는 점에 유의해야 합니다. 따라서 변환 가능 여부를 결정하기 위해 유형 검사를 수행하려면 instanceof를 사용하는 것이 가장 좋습니다. 그렇지 않으면 CalssCastException이 발생하기 쉽습니다. 또한 객체로 정의되어 있으므로 특별한 주의가 필요합니다. 유형의 객체가 문자열로 변환되면 구문 검사는 오류를 보고하지 않으므로 잠재적인 오류가 발생할 수 있습니다. 이때 특히 조심하세요. 예:
Object obj = new Integer(100);
String strVal = (String ) obj;
은 Integer 유형 이 강제로 을 String 유형으로 변환하고 전달할 수 없기 때문에 런타임 시 오류를 발생시킵니다. 그러나
Integer obj = new Integer(100);
String strVal = (String)obj;
형식 코드를 사용하면 문법 오류가 보고됩니다.

또한 null 값은 모든 Java 클래스 유형으로 캐스팅될 수 있으므로 (String)null도 적법합니다.

방법 3: String.valueOf(Object) 사용 String.valueOf(Object)의 기본은 Object.toString()입니다. 하지만 Object#toString()과는 다릅니다. 방법 1의 앞선 분석에서 언급했듯이 후자를 사용할 경우에는 null이 아닌지 확인해야 합니다. 하지만 세 번째 방법을 사용하면 객체가 null 값인지 걱정할 필요가 없습니다. 문제의 설명을 용이하게 하기 위해 관련 소스 코드를 분석해 보겠습니다. Jdk의 String.valueOf(Object) 소스 코드는 다음과 같습니다.
public static String valueOf(Object obj) {
return(obj = = null) ? " null" : obj.toString(); }
위의 소스 코드에서 null 값에 대해 걱정할 필요가 없는 이유를 명확하게 알 수 있습니다. 그러나 이것은 또한 우리에게 숨겨진 위험을 안겨줍니다. object가 null인 경우 String.valueOf(object)의 값은 null이 아니라 문자열 "null"입니다. ! ! 사용 시 주의사항을 꼭 기억해주세요. if(String.valueOf(object)==null){System.out.println("The value pass in null!");}과 같은 문을 사용하면 어떤 문제가 발생할 수 있는지 상상해 보세요. 콘솔에 출력할 때 다음 명령문의 실행 결과에서 시각적인 차이는 무엇인지 다시 생각해 보십시오.

System.out.println(String.valueOf(null ) );//문자열 "null"

System.out.println(null);//빈 값 null입니다
우리가 보는 출력은 완전히 동일합니다. 즉, null이지만 동일한 의미입니까?

관련 추천]

1. java의 valueOf 메소드 예제에 대한 자세한 설명

valueOf,parseInt,toString Java에서

3. valueOf 함수와 toString 메서드에 대한 심층적 이해

객체 변환 함수 소개 toString() 및 valueOf()

5. toString() 메서드를 사용하여 시간을 문자열로 반환합니다

위 내용은 Java에서 valueOf와 toString,(String)의 차이점의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.