Java中的全局变量出错

时间:2014-10-02 16:33:20

标签: java variables global

我在一个类中声明了这个全局变量:

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

我做错了什么?

6 个答案:

答案 0 :(得分:1)

那是因为你还没有将archivoPRTOriginal设置为值C:\ Ruta.prt。您需要先调用pacman()方法来设置值。

答案 1 :(得分:0)

pacmanIcaveBean.archivoPRTOriginal = "C:\\Ruta.prt"位于pacmanIcaveBean的构造函数中 - 也就是说,只有在您调用new pacmanIcaveBean()时才会调用它。由于您的代码段不会调用它,因此永远不会调用该行代码,archivoPRTOriginal仍为""

答案 2 :(得分: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 );
  }
}

答案 3 :(得分:0)

嗯,我想在处理system.out.println时没有执行pacman方法。

如果要确保它包含预期的值,请在声明时将字符串值与全局变量相关联。

public static String archivoPRTOriginal = "C:\Ruta.prt";
暧昧的问题,很难提供更好的答案。

答案 4 :(得分: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() );
  }
 }

答案 5 :(得分: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());

}
}