Java 我的打印方法返回空值

Java 我的打印方法返回空值,java,arrays,class,printing,Java,Arrays,Class,Printing,所以我为包含该类属性的列表创建了一个带有add和print方法的类,但是一旦我在程序类上运行它们,当我打印它们时,它会向我返回空值,有人能帮我吗 package entidades; import java.util.*; public class Profissional extends UnidadeSaude { private String categoriaP; private String nomeP; public Profissional(Strin

所以我为包含该类属性的列表创建了一个带有add和print方法的类,但是一旦我在程序类上运行它们,当我打印它们时,它会向我返回空值,有人能帮我吗

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);
        }

    }
包实体;
导入java.util.*;
公共类专业扩展大学课程{
私有字符串分类;
私有字符串nomeP;
公共专业人员(字符串命名、字符串分类、字符串命名){
超级(nomeUnidade);;
this.categoriaP=categoriaP;
this.nomeP=nomeP;
}   
公共利益专业人员(){
//TODO自动生成的构造函数存根
}
公共专业人员(字符串分类2,字符串命名2){
}
@凌驾
公共字符串toString(){
返回“Profissional[categoriaP=“+categoriaP+”,nomeP=“+nomeP+””;
} 
公共字符串getcategoriaP(){
返回分类AP;
}
public void setcategoriaP(字符串categoriaP){
this.categoriaP=categoriaP;
}
公共字符串getnomeP(){
返回nomeP;
}
公共无效集合nomeP(字符串nomeP){
this.nomeP=nomeP;
}
公共无效注册表权限(列表专业、字符串分类、字符串命名){
添加(新专业(类别AP、nomeP));
}
公共无效列表专业人员(列表专业人员){
系统输出打印(专业);
}
}
程序代码如下:

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

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

您在registarprofessional方法中使用了错误的构造函数。像那样改变结构,它就会起作用

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;
}

调用
registarprofessional
时,您正在创建一个新的
Professional
,并使用
Professional(String categoriaP2,String nomeP2)
构造函数执行此操作(通过传入
categoriaP,nomeP
的两个构造函数参数。问题是用于创建
Professional
的构造函数没有设置随后打印的字段

要解决此问题,应更新构造函数:

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

“RegisterProfessional”中使用的构造函数为空。因此,值为

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

所以基本上我在我的两个args构造函数中设置了值,否则它们保持为null,就像alea sayed一样。
现在开始工作了,谢谢。

成功了,非常感谢