Casten von Generics



  • Hallo zusammen,

    ich hab folgendes Szenario:
    mein implementiertes Inteface besitzt die
    Methode:

    public List<ClassA> get();
    

    In meiner Klasse befindet sich aber immer eine
    List<ClassB> (wobei B von A abgeleitet ist)

    public class Test{
    private List<ClassB> list;
    
    public List<ClassA> get(){
    return (List<ClassA>)list; //Type mismatch: cannot convert from List<ClassB> to List<ClassA>
    }
    
    }
    

    Was kann ich dagegen jetzt machen?

    Das einzige, was geht:

    return (List<ClassA>)(List)list;
    

    Allerdings mit Warnung...
    Die Standardwarnung:
    is actually checking against the erased type List

    Gruß,
    Genericer



  • Ich habs...

    public List<? extends ClassA> get();
    
    public List<? extends ClassB> get() {
    	return list;
    }
    

    Gruß,
    Genericer


Anmelden zum Antworten