为saveAllRequirements抛出空指针异常

时间:2013-04-17 09:09:07

标签: java hibernate maven-2

private IRequirementDao requirementDao;

@Override   
public void saveAllRequirements(List<Requirement> requirementsList) {
requirementDao.saveAllRequirements(requirementsList);
}

这次调用saveAllRequirements方法抛出空指针异常  其中IRequirementDao是一个接口,下面显示了一些方法

    public interface IRequirementDao {

        public void saveRequirement(Requirement requirement);
        public List<Requirement> getAllRequirementsCreatedBy(String createdBy);
        public List<Requirement> getAllRequirementsCreatedAfter(Date createdTs);
        public List<Requirement> getAllRequirementsForProject(long projectKey);
        public List<Requirement> getAllRequirementsAsofDt(Date asOfDt);
        public void saveAllRequirements(List<Requirement> requirementsList);
        public List<Requirement> getRequirementsWithTracebilityId(String tracebilityId);
    }

请有人帮我解决。 提前致谢

2 个答案:

答案 0 :(得分:1)

您已声明了IRequirementDao类型的对象,但根据您的代码,它既未初始化也未注入。

如果您正在使用某种依赖注入,例如Spring或Java EE,则可以使用@Resource注释此字段以便将其注入 - 前提是至少有一个此类的实现可用。

如果您没有使用依赖注入,则需要通过为您的字段分配IRequirementDao实现来自己提供对象,如下所示:

this.requirementDao = new RequirementDaoImpl(); // or whatever the name of your DAO implementation.

答案 1 :(得分:0)

这是一个界面。您需要在类中实现该接口,然后从您的类中调用saveAllRequirements方法。

要实现接口,请使用以下格式:

public class ClassA implements IRequirementDao{
}

然后它会强制您在界面中编写每个方法的实现。然后在你的另一个类中,你需要初始化实现接口的类:

public class ClassB {

    public ClassB{
         ClassA a = new ClassA();
    }

    public void saveAllRequirements(List<Requirement> requirementsList) {
        requirementDao.saveAllRequirements(requirementsList);
    }
}