When making a java action, using a type parameter makes the java better suited to being exported for use in other projects.
Type parameters come in as:
private IMendixObject source;
Whereas an object parameter objects come in as:
private IMendixObject __source;
private modulename.proxies.entityname source;
So, if you were to use a type parameter, how would you then reference the entity that it has come from? source.getType() would return modulename.entityname, but how would you then use this to reference the object that has been selected when you can use "import modulename.proxies.entityname"?