why the following down casting is not working in Java:
===


        classA a = new classA();
        classB b = new classB();
        ArrayList<a> aList = /*I then fill this array*/
        ArrayList<b> bList = /* I then fill this array too*/

        /*Now put them both in the following ArrayList of Objects*/
        ArrayList<Object> myObjs =  new ArrayList<Object>();
        myObjs.add(aList);
        myObjs.add(bList);

        /*The following two lines however fails at run time*/
        ArrayList<a> x = (ArrayList<a>) myObjs.get(0);
        ArrayList<b> x = (ArrayList<b>) myObjs.get(1);

I just read from another thread that "Downcasting is allowed when there is a possibility that it succeeds at run time "

can any one please tell me the problem of the above code ?
thank you very much! 

        