Java is an innocuous, creeping world-plot that knows you mind like the back roads of Podunkville .... ( et cetera )
I do not expect a cast to work, except as noted by the master who advises casting to the interface "type". That is the canonical approach given. Collections often have an .elementAt() method that will work in a for loop or do / while - I have discovered as you have that one has to "new" ...
Speaking of hate, I discovered last night after drooling through the matter that there is some sort of "don't do it in main()" whereby you cannot get an ArrayList reference even thought you try all sorts of Arrays.asList( new Object[]{ ..., ..., ... } and casting on a return type that is already an array list
As you have observed, Java is a creeping sanity plot run by invisible headless monsters.