3 имеют различное поведение, поэтому вы должны использовать тот, который соответствует вашим потребностям:
String.valueOf () вернет String
«ноль», если вы передадите ему ссылку null
, в то время как toString()
выдаст NullPointerException
, а приведение просто вернет null
.
Если экземпляр не является String
, приведение произойдет с ClassCastException
. Следовательно, toString()
безопаснее (если вы не вызываете его по ссылке null
), и если вы вызываете toString()
для экземпляра String
, он просто вернет this
.
Без каких-либо предварительных знаний о типе экземпляра, который вы хотите преобразовать в String
, и при условии, что вы не хотите получать «ноль» String
в случае ссылки null
, я ' d использовать:
Object input = ...
String value = null;
if (input != null) {
value = input.toString ();
}
или
String value = input != null ? input.toString () : null;