I know it’s not possible to call the equals method on a null object like that:
//NOT WORKING
String s1 = null;
String s2 = null;
if(s1.equals(s2))
{
System.out.println("NOT WORKING :'(");
}
But in my case I want to compare two objects from two database and these two objects can have attributes null…
So what is the method to compare two attributes, knowing that we are not sure that the value is null or filled.
This method is good or not ?
//WORKING
String s1 = "test";
String s2 = "test";
if(s1 == s2 || s1.equals(s2))
{
System.out.println("WORKING :)");
}
//WORKING
String s1 = null;
String s2 = null;
if(s1 == s2 || s1.equals(s2))
{
System.out.println("WORKING :)");
}
I’m not sure because in this case it’s not working … :
//NOT WORKING
String s1 = null;
String s2 = null;
if(s1.equals(s2)|| s1 == s2 )
{
System.out.println("NOT WORKING :'''(");
}
I generally use a static utility function that I wrote called
equalsWithNullsto solve this issue:Usage:
Advantages of this approach: