Hi,
Generics conventions are different.
Object o = new
String(); // Polymorphic assignment is Ok.
List<Object> lo = new ArrayList<String>() // Polymorphic generic assignments are not considered .
You can use,
List<? extends Object> lo = new ArrayList<String>();
For more information of on generics usage,
1) refer to K&B book
2) Sun Core
java book, Generics chapter