OUTPUT:
==== using isNullOrEmpty ====
Convict: Joe Jacobs
Alises : [Joey, Nails]
Crimes : [Major, Minor]
Convict: Moe Mandy
Alises : No known alises
Crimes : [Major]
Convict: Unknown
Alises : [Larry]
Crimes : [Minor]
==== using getDefaultIfNull ====
Convict: Joe Jacobs
Alises : [Joey, Nails]
Crimes : [Major, Minor]
Convict: Moe Mandy
Alises : No known alises
Crimes : [Major]
Convict: Unknown
Alises : [Larry]
Crimes : [Minor]
CODE:
package deleteme;
import java.util.Arrays;
import java.util.Collection;
import java.util.List;
public class DeleteMe {
public static void main(String[] args) {
showExample();
}
private static class Crime {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return getName();
}
}
private static class Convict {
private String name;
private List<String> alises;
private List<Crime> crimes;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public List<String> getAlises() {
return alises;
}
public void setAlises(List<String> alises) {
this.alises = alises;
}
public List<Crime> getCrimes() {
return crimes;
}
public void setCrimes(List<Crime> crimes) {
this.crimes = crimes;
}
}
public static void showExample() {
Crime minor = new Crime();
minor.setName("Minor");
Crime major = new Crime();
major.setName("Major");
Convict joe = new Convict();
joe.setName("Joe Jacobs");
joe.setAlises(Arrays.asList(new String[]{"Joey", "Nails"}));
joe.setCrimes(Arrays.asList(new Crime[]{major, minor}));
Convict moe = new Convict();
moe.setName("Moe Mandy");
moe.setCrimes(Arrays.asList(new Crime[]{major}));
Convict larry = new Convict();
larry.setAlises(Arrays.asList(new String[]{"Larry"}));
larry.setCrimes(Arrays.asList(new Crime[]{minor}));
List<Convict> convicts = Arrays.asList(new Convict[]{joe, moe, larry});
//using only the isNullOrEmpty
System.out.println("==== using isNullOrEmpty ====");
for (Convict convict : convicts) {
System.out.printf("Convict: %s%n", isNullOrEmpty(convict.getName()) ? "Unknown" : convict.getName());
System.out.printf("Alises : %s%n", isNullOrEmpty(convict.getAlises()) ? "No known alises" : convict.getAlises());
System.out.printf("Crimes : %s%n%n", isNullOrEmpty(convict.getCrimes()) ? "No known crimes" : convict.getCrimes());
}
//using the conveninece method for get default if null
System.out.println("==== using getDefaultIfNull ====");
for (Convict convict : convicts) {
System.out.printf("Convict: %s%n", getDefaultIfNull(convict.getName(), "Unknown"));
System.out.printf("Alises : %s%n", getDefaultIfNull(convict.getAlises(), "No known alises"));
System.out.printf("Crimes : %s%n%n", getDefaultIfNull(convict.getCrimes(), "No known crimes"));
}
}
public static Object getDefaultIfNull(Object o, Object ifNullUseThis) {
return (isNullOrEmpty(o) ? ifNullUseThis : o);
}
public static boolean isNullOrEmpty(Object o) {
boolean isNullOrEmpty = true;
if (o != null) {
if (String.class.isAssignableFrom(o.getClass())) {
isNullOrEmpty = ((String) o).isEmpty();
} else if (Collection.class.isAssignableFrom(o.getClass())) {
isNullOrEmpty = ((Collection) o).isEmpty();
} else if (o.getClass().isArray()) {
isNullOrEmpty = (((Object[]) o).length == 0);
} else {
isNullOrEmpty = String.valueOf(o).isEmpty();
}
}
return isNullOrEmpty;
}
}
Comments