Java - 不使用该字段的值

时间:2015-02-16 14:45:45

标签: java

我想编写一个AddressBookEntry类来表示通讯录中的条目。班级的对象应该存储一个人的姓名,电话号码和电子邮件地址。该类应该有一个构造函数来初始化一个新对象来表示一个人,以及getter方法来访问每一条信息。 到目前为止,这是我的代码:

public class AddressBookEntry {

    private String name;
    private String phone;
    private String email;

    public AddressBookEntry (String name, String phone, String email)
    {
        this.name=name;
        this.phone=phone;
        this.email=email;
    }

    public String getName()
    {
        return name;
    }

    public String getPhone (String phone)
    {
        return phone;
    }

    public String getEmail (String email)
    {
        return email;
    }
}

但我一直收到这个错误

  

未使用AddressBookEntry.phone字段的值

和电子邮件相同。我不明白我做错了什么。有什么想法吗?

4 个答案:

答案 0 :(得分:2)

吸气剂不应该有参数:

public String getPhone ()
{
    return phone;
}

public String getEmail ()
{
    return email;
}

请注意,您可以使用IDE自动为您创建getter和setter。

答案 1 :(得分:0)

我建议您使用IDE的工具来生成gettter / setter方法,它不易出错。 我的意思是如果您使用Eclipse右客户端 - > source-> Settter / Getter部分将允许您选择字段来创建相应的setter / getter方法。

答案 2 :(得分:0)

问题是方法参数被视为局部变量。因此,当您将String email作为方法参数传递时,它会隐藏字段电子邮件。您的方法将返回与您传递的字符串完全相同的字符串,而不是字段电子邮件。

这导致您发现警告,您的字段变量电子邮件从未使用过。 其他答案中解释了错误的setter / getter实现。

答案 3 :(得分:0)

电话和电子邮件属性从未使用过,您会收到警告。 重要的是你明白为什么他们从未使用过。 如果你写:

public String getEmail (String email)
{
    return email;
}

这意味着getEmail永远不会返回email属性的值,而是返回input中作为参数接收的值。 要解决此问题,您有不同的选择: 选项1:

public String getEmail ()
    {
        return email;
    }

选项2:

   public String getEmail (String email)
    {
        return this.email;
    }

选项3:

public String getEmail (String emailFake)
{
    return email;
}

这是理由:

选项1:正确的方法。您只需返回电子邮件属性的值。

选项2:您返回email属性的值,因为您使用this关键字。

选项3:您返回email属性的值,因为您的参数有另一个名称。