Methods that are generic using the T parameter can for sure be handy.  However, I am curious what the use of a generic method would be if you pass an argument such as Class<T> clazz to the method.  I've come up with a case that maybe could be an possible use.  Perhaps you only want to run a part of the method based on the type of class.  For example:
/** load(File, Collection<T>, Class<T>)
* Creates an object T from an xml.  It also prints the contents of the collection if T is a House object.
* @return T
* Throws Exception
*/
private static <T> T void load(File xml, Collection<T> t, Class<T> clazz) throws Exception{
    T type = (T) Jaxb.unmarshalFile(xml.getAbsolutePath(), clazz);  // This method accepts a class argument.  Is there an alternative to passing the class here without "clazz"?  How can I put "T" in replace of "clazz" here?
    if (clazz == House.class) {
         System.out.println(t.toString());
    } else {
         t.clear();
    }
    return T;
}
Is this an accepted practice?  When is the Class<T> clazz argument useful with generic methods?
 
     
     
     
    
 
     
     
     
    