fork download
  1. /* package whatever; // don't place package name! */
  2.  
  3. import java.util.*;
  4. import java.lang.*;
  5. import java.io.*;
  6.  
  7. /* Name of the class has to be "Main" only if the class is public. */
  8. class Ideone
  9. {
  10. public static void foo(List<List<Integer>> a)
  11. {
  12. a.add(new LinkedList<Integer>()); // putting a LinkedList where an ArrayList is expected!
  13. }
  14.  
  15. public static void main (String[] args) throws java.lang.Exception
  16. {
  17. ArrayList<ArrayList<Integer>> a = new ArrayList<>();
  18. List cheat = a;
  19. foo(cheat);
  20. System.out.println(a.get(0)); // works!
  21. ArrayList<Integer> first = a.get(0); // nope!
  22. }
  23. }
Runtime error #stdin #stdout #stderr 0.1s 320256KB
stdin
Standard input is empty
stdout
[]
stderr
Exception in thread "main" java.lang.ClassCastException: java.util.LinkedList cannot be cast to java.util.ArrayList
	at Ideone.main(Main.java:21)