Я всегда пишу
Object o;
if (o!=null)
String s = o.toString();
Если есть простой способ справиться с этим случаем?
Я всегда пишу
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
:
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"
Обновленный ответ Божо и января-59 для справки:
ObjectUtils.toString(object)
от commons-lang. В коде есть фактически одна строка:
return obj == null ? "" : obj.toString();
Однако этот метод в Apache Commons теперь устарел после выпуска 3.2 (commons/lang3). Их целью было удалить все методы, доступные в Jdk7. Этот метод был заменен на java.util.Objects.toString(Object)
в Java 7 и, вероятно, будет удален в будущих версиях. После некоторого обсуждения они еще не удалили его (в настоящее время в 3.4), и он по-прежнему доступен как устаревший метод.
Обратите внимание, что указанный метод java 7+ возвращает "null" для нулевых ссылок, в то время как этот метод возвращает и пустую строку. Чтобы сохранить использование поведения
java.util.Objects.toString(myObject, "")
String.valueOf(o)
возвращает строку "null", если o имеет значение null.
Другим может быть String s = o == null? "default" : o.toString()
Вы можете использовать java 8 Необязательно следующим образом:
String s = Optional.ofNullable(o).map(Object::toString).orElse("null");
Похоже, вы хотите получить строку, когда o не является NULL. Но я сбиваю с толку, что если вы кодируете, как у вас, вы не можете получить доступ к переменной s (вы знаете, s в справке if).
В зависимости от того, что вы хотите, это значение null
, но вы можете просто сделать это
Object o =
String s = ""+o;
Это поведение по умолчанию для println и добавления строк и т.д.