Reference variable ls1 is an List of an unknown type that is the super class of Object or Object. Since the Object class doesn't have a superclass, this is the same as saying ls1 is a List of type Object.
So, when the method is called T is an Object type, and this works because a String IS-A Object.
Reference variable ls2 is an List of an unknown type that is the subclass of Object or Object. Since the Object class is the base class, this is the same as saying ls2 is a List of any unknown type.
Also, keep in mind that the object is a List of Object, but since you didn't declare that info, when you declared your reference variable, the Java compiler doesn't know that during the method call.
So, when the method is called T is an unknown type, and this does not work because an Object cannot be confirmed to be the same unknown type.