为了避免添加值问题,我应该初始化rule_prio的值? ... 1)rule_prio.add(int x,Rule r)不起作用; 2)使用现有的EList对其进行初始化不起作用3)temp.remove(int)实际上是删除值或只修改指针?EList的初始化
private static EList<Rule> priorite(EList<Rule> R) {
Rule r;
int min ;
int p=-1;
int last_p = -1;
EList<Rule> rule_prio = null;
EList<Rule> temp = R;
while(temp.isEmpty()==false)
{
min=temp.get(0).getPriority();
for (int i=1; i<temp.size(); i++)
{
r = temp.get(i);
if (r.getPriority() < min)
{
min = r.getPriority();
p = i;
}
}
if (p!= -1 && p!= last_p)
{
rule_prio.add(temp.get(p));
temp.remove(p);
last_p = p;
}
}
return rule_prio;
}
或者它可能是规则模型的问题?
什么是“的EList”?哪条线正好导致NPE被抛出?您是否测试了该行上的变量以找出哪一个为空?你知道如何调试NPE的一般原则吗? –
显示您的堆栈跟踪并显示,导致NullPointerException –
行rule_prio.add(temp.get(p))的代码行;并没有我没有任何关于调试NPE的 – pap