我在 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)