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)
, 해당 객체의 toString()
)를 모두 처리합니다 .
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"
통과 : 특히 마지막 예를 참고 null
하는 String.valueOf()
문자열을 반환됩니다 "null"
.
String.valueOf(foo)
foo 의 .toString()
메서드를 호출 하고 결과를 막대에 할당합니다 . null 및 형식 안전 작업입니다.
유형이 일치하면 캐스팅은 foo 를 bar에 할당합니다 . 그렇지 않으면 표현식에서 ClassCastException
.
두 경우 모두 동일한 출력 을 생성 String
합니다.
Casting
제공된 객체가 아닌 경우 실패 string.
캐스팅은 객체가 문자열 유형이어야하며 String.valueOf()
다른 유형도 사용할 수 있음을 의미합니다 .
String.valueOf 메서드는 매개 변수 개체의 문자열 표현을 가져 오는 데 사용됩니다.
(문자열) 값은 객체 값을 문자열로 캐스트합니다.
String.valueOf 메서드를 사용하여 null 참조에 대한 걱정없이 개체의 문자열 표현을 가져올 수 있습니다. null 참조에서 String을 캐스팅하려고하면 NullPointerException이 발생합니다.
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
객체가 값 유형 또는 문자열 인 표현 가능한 유형 인 경우에만 문자열을 반환합니다. 그렇지 않으면 예외가 발생합니다.
후자의 경우 객체가 문자열이 아니면 실패 할 수있는 직접 캐스팅합니다.
온라인 예.
String.valueOf ();에서 작업 typecasting으로 문자열 valueof () 메서드에 전달 된 모든 인수는 String으로 변환하고 integer.string ()과 마찬가지로 정수를 문자열로만 변환합니다.
참고 URL : https://stackoverflow.com/questions/16815279/difference-between-casting-to-string-and-string-valueof
'developer tip' 카테고리의 다른 글
Android TextView에서 HTML의 인라인 이미지를 표시 할 수 있습니까? (0) | 2020.09.24 |
---|---|
.NET에서 TimeSpan 곱하기 (0) | 2020.09.24 |
PHP에서 세 점 (…)의 의미 (0) | 2020.09.24 |
일반 확장 메서드 내에서 문자열 열 이름을 사용하여 IQueryable에 OrderBy를 적용하려면 어떻게해야합니까? (0) | 2020.09.24 |
Python에서 외부 프로그램 (실행 가능)을 실행하고 있습니까? (0) | 2020.09.24 |