fork(1) download
  1. class NodeMain {
  2. public static void main(String[] args) {
  3. MyNode mn = new MyNode(5);
  4. Node n = mn; // A raw type - compiler throws an unchecked warning
  5. n.setData("Hello");
  6. Integer x = mn.data; // Causes a ClassCastException to be thrown.
  7. }
  8. }
  9.  
  10. class Node<T> {
  11.  
  12. public T data;
  13.  
  14. public Node(T data) { this.data = data; }
  15.  
  16. public void setData(T data) {
  17. System.out.println("Node.setData");
  18. this.data = data;
  19. }
  20. }
  21.  
  22. class MyNode extends Node<Integer> {
  23. public MyNode(Integer data) { super(data); }
  24.  
  25. public void setData(Integer data) {
  26. System.out.println("MyNode.setData");
  27. super.setData(data);
  28. }
  29. }
  30.  
Runtime error #stdin #stdout #stderr 0.04s 4386816KB
stdin
Standard input is empty
stdout
Standard output is empty
stderr
Exception in thread "main" java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Integer
	at MyNode.setData(Main.java:22)
	at NodeMain.main(Main.java:5)