source

String으로의 캐스팅과 String.valueOf의 차이

nicesource 2022. 10. 15. 08:35
반응형

String으로의 캐스팅과 String.valueOf의 차이

와의 차이는 무엇입니까?

Object foo = "something";
String bar = String.valueOf(foo);

그리고.

Object foo = "something";
String bar = (String) foo;

문자열로의 캐스팅은 개체가 실제로 문자열인 경우에만 작동합니다.

Object reallyAString = "foo";
String str = (String) reallyAString; // works.

오브젝트가 다른 것일 때는 동작하지 않습니다.

Object notAString = new Integer(42);
String str = (String) notAString; // will throw a ClassCastException

String.valueOf() 그러나 당신이 건네주는 모든 것을 로 변환하려고 할 것이다.String. 두 가지 기본 요소를 모두 처리합니다.42및 오브젝트(new Integer(42)를 사용하여 다음 작업을 수행합니다.

String str;
str = String.valueOf(new Integer(42)); // str will hold "42"
str = String.valueOf("foo"); // str will hold "foo"
Object nullValue = null;
str = String.valueOf(nullValue); // str will hold "null"

특히 마지막 예: passingnull로.String.valueOf()문자열을 반환합니다."null".

String.valueOf(foo)를 호출하다.toString()메서드를 사용하여 결과를 막대에 할당합니다.이것은 null로 타입의 세이프 조작입니다.

유형이 일치하는 경우 캐스팅은 막대foo만 할당합니다.그렇지 않으면 표현에 의해ClassCastException.

캐스팅이란 객체가 String 유형이어야 하는 반면String.valueOf()다른 타입도 사용할 수 있습니다.

양쪽이 같은 출력을 생성합니다.String.

Casting제공된 개체가 다음 개체가 아닌 경우 실패함string.

String.valueOf 메서드는 해당 파라미터 객체의 String 표현에 사용됩니다.

(String) 값은 오브젝트 값을 문자열에 캐스트합니다.

String.valueOf 메서드를 사용하면 늘 참조를 걱정하지 않고 개체의 String 표현을 가져올 수 있습니다.Null 참조에 String을 캐스팅하려고 하면 Null Pointer가 생성됩니다.예외.

final Object obj = null;
final String strValOfObj = String.valueOf(obj);
final String strCastOfObj = (String) obj;
if (strValOfObj == null) System.out.println("strValOfObj is null");
if (strCastOfObj == null) System.out.println("strCastOfObj is null");

출력:strCastOfObj is null

첫 번째는,String.valueOf는 개체가 값 유형 또는 문자열인 대표 유형인 경우에만 문자열을 반환합니다.그렇지 않으면 예외가 발생합니다.

후자의 경우 객체가 문자열이 아닐 경우 실패할 수 있는 직접 캐스팅입니다.

온라인 예시

http://ideone.com/p7AGh5

String.valueOf()의 경우, valueof() 메서드로 전달되는 모든 인수는 string 내에서 변환되며, integer.string()과 마찬가지로 정수를 문자열로만 변환합니다.

언급URL : https://stackoverflow.com/questions/16815279/difference-between-casting-to-string-and-string-valueof

반응형