The valueOf()
method is useful when you do not know the value contained and it might throw a NullPointerException. It returns null and you can handle the same in your code as needed.
The toString() on the other hand does not handle it and throws the exception.
public class UsingValueOf
{
public static void main(String args[])
{
UsingValueOf usingValueOf = new UsingValueOf();
usingValueOf.proceed();
}
private void proceed()
{
String nullString = null;
try
{
//Using toString() will throw NullPointerException
System.out.println(nullString.toString());
}catch(NullPointerException npe)
{
System.out.println("Exception: nullString is null");
}
//Using valueOf() will NOT throw NullPointerException
System.out.println(String.valueOf(nullString));
}
}