获取ClassCastException错误

时间:2013-03-19 05:26:31

标签: spring

我有两个类ClientLogic1和WelcomeBean1,如下所示

   public class ClientLogic1 {

   public static void main(String[] args)
   {
       Resource res = new ClassPathResource("spconfig.xml");
       BeanFactory factory = new XmlBeanFactory(res); 
       Object o = factory.getBean("id1");
       WelcomeBean1 wb = (WelcomeBean1)o; 
       wb.show();

   }

   }

第二课

  public class WelcomeBean1 {

      private Map data;  
      public void setData(Map data) {
           this.data = data;
       }

      public void show()
      {
          Set s=data.entrySet();
          Iterator it = s.iterator();
          while(it.hasNext())
          {
              Map.Entry me = (Map.Entry)it.next();
              System.out.println(me.getKey()+ " - "+me.getValue());
          }
       }

    }

我有一个xml文件

 <beans>
  <bean id="id1" class="WelcomeBean1">
   <property name="data">
    <map>
     <entry key="k1">
       <vlaue>1323</value>
     </entry>
     <entry key="k2">
       <value>feed</value>
     </entry>
    </map>
   </property>
  </bean>
 </bean>

我已经给出了正确的路径。就在我运行此程序时,我收到以下错误

Exception in thread "main" java.lang.ClassCastException: WelcomeBean cannot be  
   cast to mapexmpl.WelcomeBean1 at mapexmpl.ClientLogic1.main(ClientLogic1.java:15)

我不知道我哪里出错了。有人可以帮助我......

2 个答案:

答案 0 :(得分:0)

实际上它是说WelcomeBean不能..............但是你的代码显示为WelcomeBean1。

你在一些地方使用了WelcomeBean。请检查一次。

我认为在您使用WelComeBean之前。然后将其更改为WelComeBean1.Please使用clean构建agian。

答案 1 :(得分:0)

  1. 确保spring配置文件中没有重复的bean id。例如,您可能拥有ID WelcomeBean ,ID id1

  2. 更改为完整包名<bean id="id1" class="mapexmpl.WelcomeBean1">