簡體   English   中英

為saveAllRequirements拋出空指針異常

[英]throwing null pointer exception for saveAllRequirements

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

請任何人都可以幫助我。 提前致謝

您已經聲明了IRequirementDao類型的對象,但是根據您的代碼,該對象既未初始化也不被注入。

如果您正在使用某種類型的依賴項注入,例如Spring或Java EE,則可以使用@Resource對該字段進行注釋以便注入它-前提是至少有一個此類的實現。

如果您不使用依賴項注入,則需要通過向您的字段分配IRequirementDao實現來自己提供一個對象,如下所示:

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

那是一個接口。 您需要在一個類中實現該接口,然后從您的類中調用saveAllRequirements方法。

要實現接口,請使用以下格式:

public class ClassA implements IRequirementDao{
}

然后,它將迫使您在接口中編寫每個方法的實現。 然后,在另一個類中,您需要初始化實現接口的類:

public class ClassB {

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

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM