这是一个用来注册转换器的servlet:
package myFamily;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;

import org.apache.commons.beanutils.ConvertUtils;

public class MyServlet extends HttpServlet {

@Override
public void init() throws ServletException {
ConvertUtils.register(new MyConverter(), java.util.Date.class);
}
}
我要问的问题与转换器无关,
我想问的是
java.util.Date.class
其中这个.class是什么意思,
Date类没这个字段,
Object类也没有,
搞不懂,我甚至不知道这种语法是怎么通过的。另外,
还请帮忙解释一下:
java.util.Date.class

Class.forName("java.util.Date");两者有什么区别,谢谢!

解决方案 »

  1.   

    每个被加载的类,在jvm中都会有一个Class对象与之相对应,Class.forName("java.util.Date")和java.util.Date.class 效果是一样的,都是获得Date这个类的Class对象,Class对象可以用来产生该类的所有实例。
      

  2.   


    可是把这个程序中的
    java.util.Date.class
    换成
    Class.forName("java.util.Date")
    编译就会出错
      

  3.   

    to:6楼:这是一个用来注册转换器的servlet,
    用以上代码,该转换器可以正常工作,
    但如果改成try {
    ConvertUtils.register(new MyConverter(), Class.forName("java.lang.Date"));
    } catch (ClassNotFoundException e) {
    e.printStackTrace();
    }代开网页时就报这样的错:
    javax.servlet.ServletException: javax.servlet.ServletException: BeanUtils.populate
    org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:286)
    org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
    org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:462)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:717)root causejavax.servlet.ServletException: BeanUtils.populate
    org.apache.struts.util.RequestUtils.populate(RequestUtils.java:475)
    org.apache.struts.chain.commands.servlet.PopulateActionForm.populate(PopulateActionForm.java:50)
    org.apache.struts.chain.commands.AbstractPopulateActionForm.execute(AbstractPopulateActionForm.java:60)
    org.apache.struts.chain.commands.ActionCommandBase.execute(ActionCommandBase.java:51)
    org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:191)
    org.apache.commons.chain.generic.LookupCommand.execute(LookupCommand.java:305)
    org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:191)
    org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:283)
    org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
    org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:462)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:717)root causeorg.apache.commons.beanutils.ConversionException: DateConverter does not support default String to 'Date' conversion.
    org.apache.commons.beanutils.converters.DateTimeConverter.toDate(DateTimeConverter.java:468)
    org.apache.commons.beanutils.converters.DateTimeConverter.convertToType(DateTimeConverter.java:343)
    org.apache.commons.beanutils.converters.AbstractConverter.convert(AbstractConverter.java:156)
    org.apache.commons.beanutils.converters.ConverterFacade.convert(ConverterFacade.java:60)
    org.apache.commons.beanutils.ConvertUtilsBean.convert(ConvertUtilsBean.java:470)
    org.apache.commons.beanutils.BeanUtilsBean.setProperty(BeanUtilsBean.java:1006)
    org.apache.commons.beanutils.BeanUtilsBean.populate(BeanUtilsBean.java:830)
    org.apache.commons.beanutils.BeanUtils.populate(BeanUtils.java:433)
    org.apache.struts.util.RequestUtils.populate(RequestUtils.java:473)
    org.apache.struts.chain.commands.servlet.PopulateActionForm.populate(PopulateActionForm.java:50)
    org.apache.struts.chain.commands.AbstractPopulateActionForm.execute(AbstractPopulateActionForm.java:60)
    org.apache.struts.chain.commands.ActionCommandBase.execute(ActionCommandBase.java:51)
    org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:191)
    org.apache.commons.chain.generic.LookupCommand.execute(LookupCommand.java:305)
    org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:191)
    org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:283)
    org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
    org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:462)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    有空的话帮忙看看