It signals to the compiler that your method is in fact a generic method. Otherwise T would not be recognised as a type, but a class name. If you wrote this for example:then the compiler expects that T is a class type for the parameter, not a generic type to be substituted. You'll probably get compiler errors about the class not being found (unless you happen to have a class called T lying around!).
Charles Lyons (SCJP 1.4, April 2003; SCJP 5, Dec 2006; SCWCD 1.4b, April 2004)
Author of OCEJWCD Study Companion for Oracle Exam 1Z0-899 (ISBN 0955160340 / AmazonAmazon UK )