@@ -0,0 +1,591 @@
+%0Apackage org.junit.lambda.core.util;%0A%0Aimport static java.util.Arrays.*;%0Aimport static java.util.stream.Collectors.*;%0A%0A/**%0A * @author Sam Brannen%0A * @since 5.0%0A */%0Apublic final class ObjectUtils %7B%0A%0A%09private ObjectUtils() %7B%0A%09%09/* no-op */%0A%09%7D%0A%0A%09public static boolean nullSafeEquals(Object expected, Object actual) %7B%0A%09%09return (expected == null ? actual == null : expected.equals(actual));%0A%09%7D%0A%0A%09public static String nullSafeToString(Class%3C?%3E... classes) %7B%0A%09%09if (classes == null %7C%7C classes.length == 0) %7B%0A%09%09%09return %22%22;%0A%09%09%7D%0A%09%09return stream(classes).map(Class::getName).collect(joining(%22, %22));%0A%09%7D%0A%0A%7D%0A

Introduce common ObjectUtils