import java.util.ArrayList; import java.util.List; import java.util.function.Predicate; import org.eclipse.jdt.annotation.NonNullByDefault; @NonNullByDefault public class Defaults { List safeFilter(List in, Predicate pred) { List result = new ArrayList<>(); for (String string : in) { if (pred.test(string)) result.add(string); else result.add(null); } return result; } List safeSingleton(String in) { List result = new ArrayList<>(); result.add(in); return result; } @NonNullByDefault({}) // default is canceled for this method void unprotectedClient(Predicate myPred, String myString) { List myStrings = safeSingleton(myString); safeFilter(myStrings, myPred); } }