0

次のように、ClientLogic1 と WelcomeBean1 の 2 つのクラスがあります。

   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();

   }

   }

2級

  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)

どこが間違っているのかわかりません.誰かが私を助けてくれますか...

4

2 に答える 2

0
  1. Spring構成ファイルに重複するBeanIDがないことを確認してください。たとえば、IDID1のBeanWelcomeBeanがあるとします

  2. フルパッケージ名に変更<bean id="id1" class="mapexmpl.WelcomeBean1">

于 2013-03-19T05:32:38.517 に答える
0

実際には WelcomeBeanできないと言っています..............しかし、コードはすべて WelcomeBean1 として表示されています。

どこかで WelcomeBean を使っていました。一度確認してみてください。

以前は WelComeBean を使用していたと思いますが、それを WelComeBean1 に変更しました。クリーンで agian をビルドしてください。

于 2013-03-19T05:29:44.797 に答える