| import java.util.ArrayList; |
| import java.util.List; |
| import java.util.function.Predicate; |
| |
| import org.eclipse.jdt.annotation.NonNull; |
| import org.eclipse.jdt.annotation.Nullable; |
| |
| public class Generics { |
| |
| List<@Nullable String> safeFilter(List<@NonNull String> in, |
| Predicate<@NonNull String> pred) { |
| List<@Nullable String> result = new ArrayList<>(); |
| for (String string : in) { |
| if (pred.test(string)) |
| result.add(string); |
| else |
| result.add(null); |
| } |
| return result; |
| } |
| boolean unsafePredicateCall(List<@Nullable String> in, |
| Predicate<@NonNull String> pred) { |
| for (String string : in) { |
| if (pred.test(string)) |
| return true; |
| } |
| return false; |
| } |
| } |