0

我在 Eclipse 上使用 choco 时遇到问题,我试图添加一个约束,但我得到了一个 nullPointerException 任何人都可以向我解释吗?

public static void main(String[] args ) 
{
    int n=8;
    CPModel m=new CPModel();
    IntegerVariable[] cells = new IntegerVariable[n+1];
    for(int i = 1; i < 9; i++){
        cells[i] = Choco.makeIntVar("x"+i, 1, 8);
        m.addVariables(cells[i]);
    }

    IntegerVariable x = new IntegerVariable("X", 1, 8);
    IntegerVariable y = new IntegerVariable("Y", 1, 8);
    ComponentConstraint[] rows = new ComponentConstraint[n];
    for(int i = 0; i < n; i++){
    rows[i] =(ComponentConstraint) Choco.allDifferent(cells[i]);
        m.addConstraints((choco.kernel.model.constraints.Constraint[]) rows);
    }
    System.out.println(m.pretty());
    CPSolver s = new CPSolver();
    //read the model
    s.read(m);
    //solve the problem
    s.solve();
    for(int i = 0; i < n; i++){
        System.out.print(s.getVar(cells[i]).getVal()+" ");
    }

    System.out.println();
}

以下指令是 NullPointer 异常的来源:

m.addConstraints((choco.kernel.model.constraints.Constraint[]) rows);

错误代码:

choco.kernel.common.util.tools.ArrayUtils.getNonRedundantObjects(ArrayUtils.java:343) 的 choco.kernel.model.VariableArray.doExtractVariables(VariableArray.java:108) 的线程“main”java.lang.NullPointerException 中的异常choco.kernel.model.VariableArray.extractVariables(VariableArray.java:123) 在 choco.kernel.model.VariableArray.getVariableIterator(VariableArray.java:72) 在 choco.cp.model.CPModel.addConstraints(CPModel.java:896)在 choco.cp.model.CPModel.addConstraints(CPModel.java:853) 在 Games.main(Games.java:27)

4

0 回答 0