爲了避免添加值問題,我應該初始化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