【问题标题】:variable is still null after I assign a value to it JAVA在我为其赋值后,变量仍然为空 JAVA
【发布时间】:2013-03-21 18:42:15
【问题描述】:
public void crearCliente() {

    int i, k, j, l;
    registro r = new registro();
    k = lr.getSize();

    for (i = 0; i < k; i++) {
        r = lr.get(i);
        l = r.getSize();

        String contenido[] = new String[8];
        for (j = 0; j < l; j++) {
            contenido[j] = r.getCampoR(j);
            //System.out.println(contenido[j]);
        }
        c1 = new Cliente(contenido[0], contenido[1], contenido[2], contenido[3], contenido[4], contenido[5], contenido[6], contenido[7]);
        c1.verCliente();}

在这段代码中,最后,我为 c1 赋值,但是当我打印它时,我在所有 c1 字段中都得到了 null。我为 Cliente 类写下我的代码。 我想打印我给 c1 的所有值,但我不知道为什么它在所有字段中都打印 null。我使用调试器跟踪代码,直到将所有值分配给新变量的语句之前,一切都是正确的。

public class Cliente {

private String Id_cliente;
private String Cod_postal;
private String Numero;
private String Calle;
private String Provincia;
private String Poblacion;
private String Telefono;
private String Apellidos;

public Cliente(String idc, String cp, String num, String cal, String prov, String pob, String tlf, String aps){

    idc = Id_cliente;
    cp = Cod_postal;
    num = Numero;
    cal = Calle;
    prov = Provincia;
    pob = Poblacion;
    tlf = Telefono;
    aps = Apellidos;

}

public void verCliente(){

   System.out.println("Id_cliente: "+ Id_cliente);
   System.out.println("Codigo postal: "+ Cod_postal);
   System.out.println("Numero: "+ Numero);
   System.out.println("Calle: "+ Calle);
   System.out.println("Provincia: "+ Provincia);
   System.out.println("Poblacion: "+ Poblacion);
   System.out.println("Telefono: "+ Telefono);
   System.out.println("Apellidos: "+ Apellidos);

}

}

【问题讨论】:

  • @PradeepSimha:抓得好。您应该将此作为答案,因为它可以解决问题。
  • 谢谢...我太笨了!我被困了一天多
  • @HovercraftFullOfEels 完成 :)
  • @user2227564,如果它适合你,请接受答案:)
  • @PradeepSimha:谢谢。 1+ 投票赞成答案。

标签: java null variable-assignment


【解决方案1】:

您的分配在您的构造函数中是向后的。切换所有这些的左侧和右侧,它应该可以工作。

【讨论】:

    【解决方案2】:

    您的 Cliente 类的构造函数正在切换分配。 将 idc = Id_cliente 更改为 Id_cliente = ic。

    【讨论】:

      【解决方案3】:

      你应该改变这个

      idc = Id_cliente;
      

      Id_cliente = idc;. 
      

      您正在为方法参数而不是字段分配值。这同样适用于构造函数 Cliente 中的所有参数。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-01-21
        • 2023-03-18
        • 2013-03-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多