class Objects {
    
    

    public <T> T nullSafe(final T target, final T defaultValue) {
        return ObjectUtils.nullSafe(target, defaultValue);
    }

    public <T> T[] arrayNullSafe(final T[] target, final T defaultValue) {
        Validate.notNull(target, "Target cannot be null");
        final T[] result = target.clone();
        for (int i = 0; i < target.length; i++) {
            result[i] = nullSafe(target[i], defaultValue);
        }
        return result;
    }

    public <T> List<T> listNullSafe(final List<T> target, final T defaultValue) {
        Validate.notNull(target, "Target cannot be null");
        final List<T> result = new ArrayList<T>(target.size() + 2);
        for (final T element : target) {
            result.add(nullSafe(element, defaultValue));
        }
        return result;
    }

    public <T> Set<T> setNullSafe(final Set<T> target, final T defaultValue) {<FILL_FUNCTION_BODY>}
    
    
    
    public Objects() {
        super();
    }
    
}

        Validate.notNull(target, "Target cannot be null");
        final Set<T> result = new LinkedHashSet<T>(target.size() + 2);
        for (final T element : target) {
            result.add(nullSafe(element, defaultValue));
        }
        return result;
    
<no_super_class>