importjava.util.ArrayList;

 

publicclass Demo {

 

        class Expr {}

        abstractclass Factory <T extends Expr>{

                abstract T generate();

        }

       

        classStatementextends Expr {};

       

        class Factory2 extends Factory<Statement>{

 

                Statement generate(){

                        returnnewStatement();

                }

               

        }

       

        class FactoryList extendsArrayList<Factory>{

                Factory f2 = new Factory2();

                Statement s = f2.generate();// compiler demands a cast to Statement

        }

}


Doesn't Factory2 produce Statements?

FacebookTwitterLinkedin
Pin It
Joomla Tutorials for Beginners