2014-06-07 62 views
2

我做在eclipse一些調試,我發現,我已經得到變量出現了兩次,與第二個出場的是空:重複值

enter image description here

(我應該說是一流的名稱是AbstractSyntaxTree,因爲它構建了AST - 不是因爲它被聲明爲抽象 - 儘管它繼承了抽象類...)

任何人都可以告訴我什麼可能會導致這種情況?是關於調試器還是關於我的代碼?

編輯:讓我們來看看代碼...

public class AbstractSyntaxTreeBuilder extends AbstractSyntaxTreeSuperclass { 
    protected GLLHashPool parser; 
    protected String input; 
    protected TreeNode root; 
    protected ArtTextHandler handler; 


    public AbstractSyntaxTreeBuilder(String sourceString) { 
    super(sourceString); 
    } 
... 

..和超:

public abstract class AbstractSyntaxTreeSuperclass { 
    protected GLLHashPool parser; 
    protected String input; 
    protected TreeNode root; 
    protected ArtTextHandler handler; 


    public AbstractSyntaxTreeSuperclass(String sourceString) { 
    super(); 
    handler = new ArtTextHandler(); 
    Text text = new Text(handler); 
    parser = new ArtGrammarParser(text); 
    input = sourceString; 
.... 
+0

沒有看到您的代碼示例,很難排除您的代碼。 –

+0

您的類可能會重新定義和隱藏超類中具有相同名稱的變量。所以你的類中的變量有一個值(因爲你設置了它們)並且超類中的變量沒有被設置(空值)。 –

+0

changeStack有重複的變量? –

回答

3

取下AbstractSyntaxTreeBuilder如下:

protected GLLHashPool parser; 
    protected String input; 
    protected TreeNode root; 
    protected ArtTextHandler handler; 

他們在超類(AbstractSyntaxTreeSuperclass)中聲明爲protected,所以子類(AbstractSyntaxTre eBuilder)將可以訪問它們。

+0

當然!對不起...腦力衰竭... – Joe