2013-10-21 49 views
0
import View.UI; 
public class App { 
UI m;  
public static void main(String [] args){ 
    System.out.println("Hello"); 
    UI n ; 
    n.menu(); 
}} 

UI類將在視圖中,導入完成,但在最後表達我的錯誤The local variable n may not have been initialized .I'm在Java中首發,我不明白這就是爲什麼我不能以這種方式使用它。局部變量n可能沒有被初始化

+0

http://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.12.5 – Jayan

+0

該錯誤實際上是不言自明的。局部變量n不是初始化的。是的,你在這條線上宣佈了它;但你沒有「初始化」它;這意味着你在使用它之前沒有說過它是什麼。 – Shobit

回答

1

如果您在java中的方法內聲明變量/對象,您需要初始化它。

在最簡單的術語,

在你的情況下,它的對象,它正在訪問的方法,所以如果你不喜歡

UI n = new UI(); 

它會給你一個空指針異常初始化。

希望它有幫助。

1
public static void main(String [] args){ 
    System.out.println("Hello"); 
    UI n =AssignUIOBjectHere ; 
    n.menu(); 
}} 

方法的本地variables需要初始化,然後才使用。

編譯器抱怨說您正在使用尚未初始化的變量。

language specification

程序中的每個變量的值必須是使用它的值前:

1

正因爲如此,調用n.menu()會造成NullPointerException,因爲你永遠不指定任何東西它。

您將需要這樣做:UI n = new ...UI n = someObject

1

您必須創建一個UI實例,例如; UI n =新UI();