In very simple words When you make your T out you can only define it as return type in function if you try to write it as a parameter you will get error.
When you write T or any character; it basically means any. Here you cannot define the actual type not even any. Any is there by default. It means T : Any that is you can define any type that inherits Any and Any is the super type of all classes. You can also restrict by defining a specific parent for example T : View It means here for T we can define any type that is a View. So you cannot write the class name here. But you can define a super type if required.