Ciao non ho capito bene cosa accade in questo tipo di esercizio:

codice:
                List<? super Number> ln= new ArrayList<>();        
List<? super Double> ld=new ArrayList<>();
        
        ld=ln; //OK, perchè Number è un supertipo di Double
        
        List<? super Number> lan=new ArrayList<>();
        lan.add(new Double(2.01)); //PERCHE' 
        lan.add(new Object()); //Errore, perchè?
grazie per l'aiuto