ProgramingTip

널을 테스트하는 간단한 방법으로 변환하기 전에

bestdevel 2020. 12. 13. 10:23
반응형

널을 테스트하는 간단한 방법으로 변환하기 전에


나는 항상 쓴다

Object o;
if (o!=null)
String s = o.toString();

이 사건을 처리하는 간단한 방법이 권한이 있습니까?


ObjectUtils.toString(object)commons-lang에서. 코드는 실제로 한 줄입니다.

return obj == null ? "" : obj.toString();

참고 사항- toString()디버그 및 로깅에만 사용 하십시오. 형식에 의존하지 않습니다 toString().


클래스 의 정적 valueOf메서드 String는 널 (null)를 수행 검사 "null"하고 object-가 null다음 과 같은 경우 반환 합니다 .

String stringRepresentation = String.valueOf(o);

시험 Objects.toString(Object o, String nullDefault)

예 :

import java.util.Objects;

Object o1 = null;
Object o2 = "aString";
String s;

s = Objects.toString(o1, "isNull"); // returns "isNull"
s = Objects.toString(o2, "isNull"); // returns "aString"

참조를 위해 Bozho 및 January-59의 답변 업데이트 :

ObjectUtils.toString(object)commons-lang에서. 코드는 실제로 한 줄입니다.

return obj == null ? "" : obj.toString();

그러나 Apache Commons 의이 방법은 릴리스 3.2 (commons / lang3) 이후로 더 이상 사용되지 않습니다 . 여기서는 목표는 Jdk7에서 사용할 수있는 모든 메소드를 제거하는 것이 었습니다. 이 메서드는 자바 7java.util.Objects.toString(Object) 에서 로 대체 되었으며 향후 릴리스에서 제거 될을 구석으로입니다. 몇 가지 논의 후에도 아직 제거하지 않습니다. (현재 3.4에서) 더 이상 사용하지 않는 방법으로 계속 사용할 수 있습니다.

그러나 상기 자바 7+ 메서드는 null 참조에 대해 "null"을 반환하는 반면이 메서드는 빈 반환을 반환합니다. 행동을 보존하려는 경우

java.util.Objects.toString(myObject, "")

import java.util.Objects;
Objects.toString(object, "")

단순 및 0 예외 예외 :)


String.valueOf(o) o가 null 인 경우 "null"문자열을 반환합니다.

다른 하나는 String s = o == null? "default" : o.toString()


다음과 같은 방법으로 java 8 선택 사항을 사용할 수 있습니다.

String s = Optional.ofNullable(o).map(Object::toString).orElse("null");

원하는 null값에 따라이 작업을 수행 할 수 있습니다.

Object o =
String s = ""+o;

이 println 및 추가 설치 대한 기본 동작입니다.


o가 NULL이 아닐 때 String을 주목할만한 시청. 그러나 나는 당신과 같이 코딩하면 변수에 액세스 할 수 있고 혼란스럽게합니다 (만약 문 범위에 s를 알고 있습니다).

참고 URL : https://stackoverflow.com/questions/5522201/any-simple-way-to-test-null-before-convert-an-object-to-string

반응형