2010-11-17 67 views
0

我有這個Java代碼的問題:C不能被解析爲變量 - java的

for(Clause c : clauses) 
    { 
    if(c.s == 0) 
    { 
    switch(c.formula.type) 
    { 

    //LITERAL 
    case 0: 

     { 
      ArrayList<Clause> clauses_without_c = ((ArrayList<Clause>) clauses.clone()); 
      clauses_without_c.remove(c); 
     } 
    } 
    } 
} 

,我得到了錯誤線「C不能被解析爲變量」:

clauses_without_c.remove(c); 

有什麼問題?

+0

'clauses'是一個數組嗎? – 2010-11-17 10:46:20

+0

沒有語法錯誤,我可以在該代碼段中看到。也許這是由代碼片段中的某些內容引起的?也許這不是你實際編譯的代碼?你使用什麼版本的Java /編譯器? – 2010-11-17 10:57:13

+0

public ArrayList 子句; – Esse 2010-11-17 10:57:47

回答

0

我敢打賭,克隆()沒有做你認爲的事情。

如果從句是一個ArrayList,你應該閱讀的javadoc:

返回此 ArrayList實例的淺表副本。

您應該創建一個新的容器實例並深層複製所有的值。

+0

但問題不在於克隆的實例 - 這是c變量的問題,它來自於每個語句。 – Esse 2010-11-17 10:52:32