2014-10-02 40 views
-2

我聲明瞭在一類這個全局變量全局變量:錯誤在Java

public class pacmanIcaveBean implements pacmanIcaveLocal { 
    public static String archivoPRTOriginal = ""; 

    public void pacman() { 
     pacmanIcaveBean.archivoPRTOriginal = "C:\\Ruta.prt"; 
    } 
} 

但我稱它在其他類這樣的:

public class Generador { 
    public void generar { 
     System.out.println(pacmanIcaveBean.archivoPRTOriginal); 
    } 
} 

而且它不」告訴我C:\\Ruta.prt

我在做什麼錯?

+1

您是否稱過'pacman()'方法? – rgettman 2014-10-02 16:34:37

+0

請使用編輯器提供的實用程序來格式化您的代碼。 – 2014-10-02 16:34:40

+0

它顯示什麼輸出? – jgr208 2014-10-02 16:37:31

回答

1

這是因爲您尚未將archivoPRTOriginal設置爲值C:\ Ruta.prt。您需要先調用pacman()方法來設置值。

0

pacmanIcaveBean.archivoPRTOriginal = "C:\\Ruta.prt"被置於pacmanIcaveBean的構造函數中 - 即只有當您撥打new pacmanIcaveBean()時纔會調用它。由於您的代碼片段不會調用它,因此不會調用該行代碼,並且archivoPRTOriginal仍然爲""

0
public class pacmanIcaveBean implements pacmanIcaveLocal 
{ 
    public static String archivoPRTOriginal = ""; 
    public void pacman() 
    { 
    pacmanIcaveBean.archivoPRTOriginal = "C:\\Ruta.prt"; 
    } 
} 

public class Generador 
{ 
    public void generar 
    { 
    //call pacman method 
    new pacmanIcaveBean().pacman(); 
    System.out.println(pacmanIcaveBean.archivoPRTOriginal); 
    } 
} 
+0

這段代碼不會運行 - 它不會調用'pacman()'。 – Paul 2014-10-02 16:43:29

+0

怎麼沒?我調用了公共類 – jgr208 2014-10-02 16:45:16

+0

@Paul然後調用pacman方法,該方法將設置字符串 – jgr208 2014-10-02 16:47:49

0

那麼我猜pacman方法不會在處理system.out.println時執行。

只要將聲明的字符串值與全局變量相關聯,就可以確保它包含預期的值。

public static String archivoPRTOriginal = "C:\Ruta.prt"; 

含糊不清的問題,很難提供更好的答案。

0

您認爲這樣做會有效嗎?

public class pacmanIcaveBean implements pacmanIcaveLocal{ 

public static String archivoPRTOriginal = ""; 

public void pacman(){ 

pacmanIcaveBean.archivoPRTOriginal = "C:\\Ruta.prt"; 

} 

public String valores(){ 

    String ruta=pacmanIcaveBean.archivoPRTOriginal; 

    return ruta; 
    } 
} 

public class Generador{ 

public void generar{ 

    pacmanIcaveBean Obj= new pacmanIcaveBean(); 
    System.out.println(Obj.valores()); 
    } 
} 
+0

如果pacman永遠不會被調用來設置字符串否 – jgr208 2014-10-02 17:14:54

+0

你是對的,它不會工作。 – 2014-10-02 17:23:38

0

解決方案!

public class pacmanIcaveBean { 

private static String rutaCopiar = ""; 

public static String getRutaCopiar() { 
    return rutaCopiar; 
} 

public static void setRutaCopiar(String rutaCopiar) { 
    pacmanIcaveBean.rutaCopiar = rutaCopiar; 
} 

public void pacman() { 

    pacmanIcaveBean.setRutaCopiar("C:\\Ruta.prt"); 

    } 
} 

public class Generador { 

public void generar() { 

    new pacmanIcaveBean().pacman(); 
    System.out.println(pacmanIcaveBean.getRutaCopiar()); 

} 
}