Die Frage ist, wieso kommt bei der Varags-Methode
...
"List<Integer> numbersList = Arrays.asList();"
...
eine java.lang.UnsupportedOperationException ?
Wenn man das Gleiche aber in Main mit fixen Integer-Werten macht, dann kommt keine java.lang.UnsupportedOperationException ?
Hier geht
"List<Integer> numbersList = Arrays.asList(60, 20, 120);"
Bei der Methode muss man
"List<Integer> numbersList = new ArrayList<>();"
schreiben, sodass es funktioniert !
	
	
	
	
	
		
	
			
			...
"List<Integer> numbersList = Arrays.asList();"
...
eine java.lang.UnsupportedOperationException ?
Wenn man das Gleiche aber in Main mit fixen Integer-Werten macht, dann kommt keine java.lang.UnsupportedOperationException ?
Hier geht
"List<Integer> numbersList = Arrays.asList(60, 20, 120);"
Bei der Methode muss man
"List<Integer> numbersList = new ArrayList<>();"
schreiben, sodass es funktioniert !
		Java:
	
	public class GenericsDemo
{
    // Main
    public static void main(String... args)
    {
        // Varargs ohne Generics:
        sumA(1,2,3,4,5,6,7,8,9,0);
      
        // Args mit Generics:
        int result = 0;
        List<Integer> numbersList = Arrays.asList(60, 20, 120);        // Addition korrekt
        for(var nL : numbersList)                    // oder int
        result += nL;
        System.out.println(result);
      
        // Varargs mit Generics (Addition):
        sumB(60, 20, 120);             
    }
    // Varargs ohne Generics (Addition):
     static void sumA(int... numbers)
     {
         int result = 0;
         for(int i : numbers)
         { result += i; }
         System.out.println(result);
     }
  
  
     // Varargs mit Generics (Addition):                     
     static void sumB(int... numbersX)
     {
         int result = 0;
         // List<Integer> numbersList = Arrays.asList();        // java.lang.UnsupportedOperationException
         List<Integer> numbersList = new ArrayList<>();            // .add korrekt
         for(var i : numbersX)                                     // oder int
         { numbersList.add(i); }
          
         for(var nL : numbersList)                                // oder int
         { result += nL; }
         System.out.println(result);
     }
}
			
				Zuletzt bearbeitet: 
			
		
	
								
								
									
	
								
							
							 
				 
 
		 
 
		 
 
		
 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		