public static <I> void setClass(Configuration conf, ConfVars var, Class<? extends I> theClass,
                                  Class<I> xface) {
    assert var.defaultVal.getClass() == String.class;
    conf.setClass(var.varname, theClass, xface);
  }
Set the class name in the configuration file
@param conf configuration file to set it in
@param var variable to set
@param theClass the class to set it to
@param xface interface that the class implements.  I don't know why this is required, but
             the underlying {@link Configuration#setClass(String, Class, Class)} requires it.
@param <I> interface the class implements.
standalone-metastore/metastore-common/src/main/java/org/apache/hadoop/hive/metastore/conf/MetastoreConf.java