2014-10-02 46 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()); 

} 
}