Something weird i've just realized:
Java documentation states that List collection has a method T get(int index) ... as you see the method returns T
However i can do:
List<Integer> l1 = new ArrayList<>();
l1.add(1);
List l2 = l1;
l2.add("Hello my friend");
Object o2 = l1.get(1);
System.out.println(o2);
And the result is "Hello my friend" !! ... this does not comply with stated in documentation since the result shall be Integer!
Is there any other possible explanaition?