[英]Global variable can't store value
我一直在嘗試從用戶輸入一個String
值並將其存儲到一個全局變量中。 輸入在我實例化它的方法中運行良好,但問題是如果我嘗試從另一個方法調用全局變量,它的值將設置回null
。
這是我的輸入代碼:
Object select;
select = JOptionPane.showInputDialog(this, "Choisissez le département : ", "Boîte de dialogue",
JOptionPane.QUESTION_MESSAGE, icone, liste, liste[0]);
this.select = select.toString();
此時,如果我在控制台中打印this.select
,它的值就會正確顯示。 現在,當我從其他地方調用它時:
public void afficherInfos() throws IOException {
//some code
d = new Dep(Integer.parseInt(liste.get(Arrays.asList(d.getDeps()).indexOf(this.getSelect()))));
}
它顯示IndexOutOfBoundsException
,因為indexOf(this.getSelect())
返回-1
,因為程序無法在數組中找到它。 當我在此方法中打印this.getSelect()
時,控制台顯示null
,但我看不出如何丟失該值,因為它已正確實例化和存儲?
我認為這似乎與提升和類型轉換有關我知道當我們用控制台打印一些實例時,那個實例用 toString() 打印,但是你在 indexOf 中使用 this.getSelect()
全局變量是java程序中任何地方都可以訪問的變量。 Java 在技術上不允許使用全局變量。由於 Java 是面向對象的,因此所有內容都是 class 的一部分。可以聲明 static 變量,它可用於 class 的所有實例。好吧,在你的情況下你可以使用這個.getSelect() 在 indexOf 中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.