Latest news about Bitcoin and all cryptocurrencies. Your daily crypto news habit.
This article was originally posted here.
Overview
In this little article, we will see how to get the string representation(tostring) of an object cautiously, that means avoiding NullPointerException.
Context
Getting the String representation of a Java object is something we often do for logging, debugging, or simply for overview purpose.
For a null object we will be directed to a NullPointerException, as the toString is using the fields of the object.
A catch up of this without even check for nullity before is just by using the String.valueOf(object)method instead of directly using object.toString().
Here is the content of String.valueOf generated by IntelliJ:
Where it’s clearly described how the null is catches on before the toString.
This function is also wrapped up into the Objects utility function accessible via the: Objects.toString(Object o), more readable.
A real live example
Let’s suppose your application logic, among others, is using two models with some properties where one depends on the other:
- ObjectB: propB
- ObjectA: propA, objectB1 and objectB2
Considering that the dependency objectB2 is optional and somewhere in your code you would like to toString each property of ObjectA(even the optional one).
Here is an approach without the need of checking for nullity:
ObjectB class:
ObjectA class has objectB2 as an optional property:
The following JUnit test illustrates how we now proceed to come out with a safe string representation of ObjectA’s instances:
The printed string of our ObjectA into the console is:
ObjectA{propA=’Fake propA’, objectB1=ObjectB{propB=’Fake propB’}, objectB2=null}
More usages of the Objects class can be found on this page.
Conclusion
To sum up, we have seen here a proper way to safely toString an object with embed properties.
As usual, the code is available in the GitHub repo.
Thanks for reading this post, recommend and share if you enjoyed it.Follow me on Facebook, Twitter, LinkedIn and visit my blog.
Cheers!
Safely toString a Java object was originally published in Hacker Noon on Medium, where people are continuing the conversation by highlighting and responding to this story.
Disclaimer
The views and opinions expressed in this article are solely those of the authors and do not reflect the views of Bitcoin Insider. Every investment and trading move involves risk - this is especially true for cryptocurrencies given their volatility. We strongly advise our readers to conduct their own research when making a decision.