import java.util.ArrayList;
import java.util.List;

public class SalinData {
    // Kombinasi PECS: sumber dibaca (? extends T), tujuan ditulis (? super T)
    static <T> void salin(List<? super T> tujuan, List<? extends T> sumber) {
        for (T nilai : sumber) {
            tujuan.add(nilai);
        }
    }

    public static void main(String[] args) {
        List<Integer> bulat = List.of(10, 20, 30);
        List<Number> angka = new ArrayList<>();
        salin(angka, bulat);   // List<Number> menampung isi List<Integer>
        System.out.println("Tujuan: " + angka);

        List<String> nama = List.of("Budi", "Siti");
        List<Object> rak = new ArrayList<>();
        salin(rak, nama);       // List<Object> menampung isi List<String>
        System.out.println("Rak   : " + rak);
    }
}
