[英]Non-static method getText() can not be referenced from a static context
我已經編寫了以下代碼,但是不斷收到“無法從靜態上下文引用非靜態方法getText()”錯誤。
有人可以幫助我在這里走上正確的路嗎?
public class ISBNText extends JTextField
{
protected static String bookNum;
protected JTextField bookText;
public ISBNText()
{
super(20);
bookText = new JTextField();
}
public String getISBN()
{
String bookNum = ISBNText.getText();
return bookNum;
}
private String validateISBN(String bookNum)
}
這行:
String bookNum = ISBNText.getText();
應該只是:
String bookNum = getText();
這是隱式的:
String bookNum = this.getText();
調用ISBNText.getText()
試圖像靜態方法一樣調用它-即與類型關聯,而不是與該類型的任何特定實例關聯。 這顯然是沒有意義的,因為文本與類型的實例相關聯。 我向您展示的兩個替代方案是等效的,找到已調用getISBN
的ISBNText
的文本。
您正在調用getText
,就好像它是靜態的一樣。 在您的getISBN
方法中,從其前面刪除ISBNText
。
看來您還在冗余地實例化一個附加的JTextField
。 您正在編寫的類是一個JTextField
,您不需要創建的其他類:
protected JTextField bookText; // get rid of this
public ISBNText()
{
super(20);
bookText = new JTextField(); // and this
方法getText()
不是靜態的,應該在對象的實例上調用。
public String getISBN()
{
String bookNum = this.getText();
return bookNum;
}
我相信您的問題是您正在調用ISBNText.getText(),但getText()方法不是靜態方法。 只需從該調用的開頭刪除ISBNText,就可以了。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.