Non so se può esserti utile (e se è quanto ti aspetti) ma vedi questo. Data una interfaccia generica:
codice:public interface ObjectFilter<T> { boolean accept(T t); }
codice:import java.util.ArrayList; import java.util.List; public class Test { public static void main(String[] args) { List<Object> oggetti = new ArrayList<Object>(); List<Integer> interi = new ArrayList<Integer>(); interi.add(14); interi.add(34); interi.add(25); interi.add(9); ObjectFilter<Number> numFilter = new ObjectFilter<Number>() { public boolean accept(Number num) { return num.doubleValue() < 20; } }; filtra(interi, oggetti, numFilter); System.out.println(oggetti); } public static <T> void filtra(List<? extends T> src, List<? super T> dst, ObjectFilter<? super T> filter) { for (T t : src) { if (filter.accept(t)) { dst.add(t); } } } }
Ti è chiaro perché ho usato i bound in quel modo in filtra?

Rispondi quotando