0
private IRequirementDao requirementDao;

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

この saveAllRequirements メソッドへの呼び出しは null ポインター例外をスローします。ここで、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);
    }

誰でも私を助けてください。前もって感謝します

4

2 に答える 2

1

タイプ のオブジェクトを宣言しましたがIRequirementDao、コードによれば、初期化も注入もされていません。

Spring や Java EE などのある種の依存性注入を使用している場合は、このフィールドにアノテーションを付け@Resourceて注入することができます (このクラスの実装が少なくとも 1 つ利用可能である場合)。

依存性注入を使用していない場合は、次のIRequirementDaoようにフィールドに実装を割り当てて、オブジェクトを自分で提供する必要があります。

this.requirementDao = new RequirementDaoImpl(); // or whatever the name of your DAO implementation.
于 2013-04-17T09:13:10.677 に答える
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);
    }
}
于 2013-04-17T09:13:47.617 に答える