2012-03-02 93 views
0

爲了說明:訪問overriden超類方法中的子類屬性。可能?

public class FooButton extends JButton { 
    protected Integer length = 30; 

    public FooButton(String txt) { 
     setText(txt); 
    } 

    @Override 
    public void setText(String txt) { 
     super.setText(txt.substring(0, length)); 
    } 
} 

不幸的是對於我來說,Eclipse的告訴我,lengthnull通過setText()一段時間。

+0

什麼類型是'長度'? – nwinkler 2012-03-02 15:06:15

+0

你爲什麼使用Integer而不是int?使用'Integer'會引入大量不必要的自動裝箱。 – nwinkler 2012-03-02 15:13:09

+0

我不知道,對於Java來說很新,我從不問自己差異。但是,這是我的'null'的原因。 – user978548 2012-03-02 15:21:51

回答

1

它不應該是:

protected int length = 30; 
+0

在這種情況下,它不能'空'... – nwinkler 2012-03-02 15:07:06

+0

哦不.. 我在我的問題misstyped,但實際上有「整數長度」。所以我改變了「int長度」,這是很好的.. 我想我還有一些東西要學習Java :) – user978548 2012-03-02 15:14:34

+0

那麼現在工作與'int'的變化? – nwinkler 2012-03-02 15:19:36

0

你忘了給數據類型的變量。

+0

我只是在問題中忘了它。事實上,我在我的代碼中寫了「Integer length」,它看起來不像「int length」。必須谷歌。 – user978548 2012-03-02 15:17:11