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
는 개체가 값 유형 또는 문자열인 대표 유형인 경우에만 문자열을 반환합니다.그렇지 않으면 예외가 발생합니다.
후자의 경우 객체가 문자열이 아닐 경우 실패할 수 있는 직접 캐스팅입니다.
온라인 예시
String.valueOf()의 경우, valueof() 메서드로 전달되는 모든 인수는 string 내에서 변환되며, integer.string()과 마찬가지로 정수를 문자열로만 변환합니다.
언급URL : https://stackoverflow.com/questions/16815279/difference-between-casting-to-string-and-string-valueof
'source' 카테고리의 다른 글
동기화되지 않은 정적 메서드가 정적 클래스 변수를 수정하지 않는 경우 스레드 안전합니까? (0) | 2022.10.15 |
---|---|
MariaDB/MySQL에서 잠금 없이 삭제?(InnoDB) (0) | 2022.10.15 |
동적으로 확장되는 어레이 (0) | 2022.10.15 |
키가 mariadb로 너무 깁니다만, 같은 인코딩의 스크립트가 mysql로 동작합니다. (0) | 2022.10.15 |
mysql 워크벤치 EER 열기 오류 (0) | 2022.10.15 |