Erste Schritte Lower Bounded Wildcards <? super Integer>

enero99

Mitglied
Hallo,
ich habe ein Programmfragment was ich mir nicht erklären kann.

Warum bekomme ich wenn ich die Methode "addNumbers(li2);" aufrufe ein "UnsupportedOperationException"?

Rufe ich dagegen die Methode mit "addNumbers(li1);" auf, läuft es wie erwartet.

Gruß und Dank im Voraus für jeden Tipp.
enero99
Java:
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class Gen4 {

    public static void main(String[] args) {
        List<Integer>  li1 = new ArrayList<>();
        li1.add(1);
        li1.add(2);
        li1.add(3);
    
        List<Integer> li2 = Arrays.asList(1,2,3);
   
        addNumbers(li1); // klappt wie gewünscht
        System.out.println(li1);

        addNumbers(li2); // UnsupportedOperationException <<< Error
        System.out.println(li2);
    }

    public static void addNumbers(List<? super Integer> list) {
        for (int i = 4; i <= 9; i++) {
            list.add(i);
        }
    }
}
 
Zuletzt bearbeitet von einem Moderator:

Ähnliche Java Themen

Neue Themen


Oben