【问题标题】:My printing method is returning null values [closed]我的打印方法返回空值[关闭]
【发布时间】:2020-01-03 17:58:29
【问题描述】:

所以我为包含该类属性的列表创建了一个具有添加和打印方法的类,但是一旦我在程序类上运行它们,当我打印它们时它会返回空值给我,有人可以帮助我吗?

package entidades;
import java.util.*;

public class Profissional extends UnidadeSaude {
    private String categoriaP;
    private String nomeP;


    public Profissional(String nomeUnidade,String categoriaP, String nomeP) {
        super(nomeUnidade);
        this.categoriaP = categoriaP;
        this.nomeP = nomeP;     
    }   
    public Profissional() {
        // TODO Auto-generated constructor stub
    }
    public Profissional(String categoriaP2, String nomeP2) {

    }
    @Override
    public String toString() {
        return "Profissional [categoriaP=" + categoriaP + ", nomeP=" + nomeP + "]";
    } 
    public String getcategoriaP() {
        return categoriaP;
    }
    public void setcategoriaP(String categoriaP) {
        this.categoriaP = categoriaP;
    }
    public String getnomeP() {
        return nomeP;
    }
    public void setnomeP(String nomeP) {
        this.nomeP = nomeP;
    }
    public void RegistarProfissional(List<Profissional>rProfissional, String categoriaP,String nomeP) {
        rProfissional.add(new Profissional(categoriaP, nomeP));
    }
    public void ListarProfssional(List<Profissional>rProfissional) {
            System.out.println(rProfissional);
        }

    }

程序代码是这样的: Program code

【问题讨论】:

    标签: java arrays class printing


    【解决方案1】:

    当您调用RegistarProfissional 时,您正在创建一个新的Professional 并使用Profissional(String categoriaP2, String nomeP2) 构造函数来执行此操作(通过传入categoriaP, nomeP 的2 个构造函数参数。问题是您正在使用的构造函数创建 Professional 不会设置您正在打印的字段。

    要解决这个问题,你应该更新你的构造函数:

    public Profissional(String categoriaP2, String nomeP2) {
        this.categoriaP = categoriaP2;
        this.nomeP = nomeP2; 
    }
    

    【讨论】:

      【解决方案2】:

      所以基本上我已经在我的双参数构造函数中设置了值,否则它们就像 alea 所说的那样保持为空。 现在可以使用了,谢谢。

      【讨论】:

        【解决方案3】:

        您的双参数构造函数中没有设置任何值。您应该以任何方式设置这些值,否则它们将保持为空。

        public Profissional(String categoriaP2, String nomeP2) {
            this(null, categoriaP2, nomeP2);
        }
        

        【讨论】:

        • 成功了,非常感谢
        【解决方案4】:

        您在 RegistarProfissional 方法中使用了错误的构造函数。像这样更改构造函数,它会起作用。

        public Profissional(String nomeUnidade,String categoriaP, String nomeP) {
            super(nomeUnidade);
            this.categoriaP = categoriaP;
            this.nomeP = nomeP;     
        }   
        public Profissional() {
            // TODO Auto-generated constructor stub
        }
        public Profissional(String categoriaP2, String nomeP2) {
            super(null);
            this.categoriaP = categoriaP;
            this.nomeP = nomeP;
        }
        

        【讨论】:

          【解决方案5】:

          您在“RegisterProfessional”中使用的构造函数是空的。所以价值观。

          public Profissional(String categoriaP2, String nomeP2) {
             this(null, categoriaP2, nomeP2);
          }
          

          【讨论】:

            猜你喜欢
            • 2021-04-08
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2013-12-25
            • 1970-01-01
            • 1970-01-01
            • 2014-09-28
            • 1970-01-01
            相关资源
            最近更新 更多