字符串更改为null

时间:2014-10-27 17:27:59

标签: java

早上好,我使用以下构造函数代码,出于某种原因," position"每次创建新对象时,变量都设置为null。

这是我的班级代码

public class Employee
{
    private String name;
    private int idNumber;
    private String department;
    private String position;

    public Employee(String nam, String depart, String posi, int id)
    {
       name = nam;
       department = depart;
       posi = position;
       idNumber = id;    
    }
} 

这就是我用来创建对象的行。

Employee sMeyers = new Employee("Susan Meyers", "Accounting", "Vice President", 47899);

4 个答案:

答案 0 :(得分:1)

应该是

position = posi;

而不是

posi = position;

你在这里为一个不可变参数(position)分配一个空变量(posi)。

答案 1 :(得分:1)

其他答案已经说过你的错误是

posi = position

Luiggi Mendoza也发表评论说你应该使用"这"!

我只想给你一个完整的例子来说明它应该如何完成。

public class Employee
{
    private String name;
    private int idNumber;
    private String department;
    private String position;

    public Employee(String name, String department, String position, int idNumber)
    {
       this.name = name;
       this.department = department;
       this.position = position;
       this.idNumber = idNumber;    
    }
} 

通过这种方式显式访问您的类变量也可以避免编写新的变量名称,例如" nam"和" pos"。

答案 2 :(得分:0)

对于构造函数参数posi,您希望获取该值并将其分配给其中一个类字段,在此示例中为position。现在,您正在做的是将position(为空)分配给posi。所以你用null来覆盖你的参数,而不是用它做任何事情。

您想要做的是以下内容:

position = posi;

将构造函数参数("Vice President)分配给类字段position

请记住,右侧的变量分配给左侧的变量。

答案 3 :(得分:0)

多数民众赞成是因为你这句话:

posi = position;

将其更改为

position =posi;

使用“this”指针来避免这些错误。快乐编码!!