日期:2014-05-18  浏览次数:20682 次

请问一下,为什么我写的 user.setName("xxx")返回的是null?
请问一下,为什么我写的  user.setName("xxx")返回的是null?

代码:
public class Installer{

   //实现相应的增删改查方法
   private IUserService userService;
   private User user;
   // set,get方法.....

   public void install() {
           // 2.超级用户
           // 在这里改成new 一个User对象,并且User类里增加了空构造函数,运行后还是报错。
           // User user=new User();
           user.setName("超级用户");
           user.setLoginName("admin");
           user.setPassword("admin");

           userService.save(user);

        // 3.初始化权限....
   }

-----------------------------------------------------------------------------------

applicationContext.xml

<!-- 配置ActionService -->
<bean id="RoleServiceImpl" class="com.itcast.service.impl.RoleServiceImpl">
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>
<bean id="UserServiceImpl" class="com.itcast.service.impl.UserServiceImpl">
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>
<bean id="PrivilegeServiceImpl"  class="com.itcast.service.impl.PrivilegeServiceImpl">
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>


<!-- 配置实体类 -->
<bean id="User" class="com.itcast.domain.User"></bean>
<bean id="Privilege" class="com.itcast.domain.Privilege"></bean>
         ....

<!-- 配置Installer类(初始化权限管理数据)-->
<bean id="Installer" class="com.itcast.install.Installer">
<property name="userService" ref="UserServiceImpl"></property>
<property name="privilegeService" ref="PrivilegeServiceImpl"></property>
<property name="user" ref="User"></property>
</bean>



运行后报:Exception in thread "main" java.lang.NullPointerException
at com.itcast.install.Installer.install(Installer.java:51)就是代码为红色的地方
at com.itcast.install.Installer.main(Installer.java:42)



------解决方案--------------------
配置文件问题。spring没有管理到bean。userService,privilegeService,user都没有被初始化(debug时那三个对象都为null)。
------解决方案--------------------
Installer类中的User属性需要有setUser 方法。 你没有创建?
------解决方案--------------------
你这 2个名字应该是要一样的。不能不一样。你也可以按住Ctrl然后鼠标对着 参数。看有没有能点进去的趋势。有就对,没有就说明没有配置对。就是空的,null