Java 比较给定方法头的名称?
给定标题:Java 比较给定方法头的名称?,java,Java,给定标题: public boolean equals(Name otherName) 我应该比较两个名称对象是否相等。我现在得到的是: public boolean equals(Name otherName){ return (name1.equalsIgnoreCase(name2)); } 但是,我得到了一个标识符预期的错误。我认为如果我更改参数,它会起作用,但作业要求我使用该标题。我做错了什么 以下是构造函数的名称: public Name (String first, S
public boolean equals(Name otherName)
我应该比较两个名称对象是否相等。我现在得到的是:
public boolean equals(Name otherName){
return (name1.equalsIgnoreCase(name2));
}
但是,我得到了一个标识符预期的错误。我认为如果我更改参数,它会起作用,但作业要求我使用该标题。我做错了什么
以下是构造函数的名称:
public Name (String first, String middle, String last){
firstName = first;
middleName = middle;
lastName = last;
}
由于定义了name1
和name2
,因此会出现“获取标识符预期错误”。在equals方法中,您传递另一个对象,因此将其称为otherName
,对象本身可以作为this
访问
试一试
或
当然,您应该为
Name
类实现equalsIgnoreCase
。什么是Name
?它是否有equalsIgnoreCase
方法?name1和name2在哪里初始化?更好的是,它们是在任何地方初始化的吗?看起来您希望在方法中使用otherName,因为您正在传入它。我感觉您的头可能有问题。很明显,您需要回到基础。无需添加额外的null检查:this.equalsIgnoreCase(otherName)
。但是,这假定Name
具有equalsIgnoreCase
方法。更可能的是,Name
有一个字符串字段,需要在这里进行相等性比较,但是OP没有包含任何关于字段或方法的信息。我们不知道equalsIgnoreCase
是如何在这个类中实现的,因此,如果将null
作为参数传递,我们不能说它一定会阻止NullPointerException(因此空检查不一定没有用处)。不管怎样,仅用给出的信息来回答这个问题确实很难。@A.R.s.同意,但我相信这段代码对OP有用,除非他更新了问题并提供了更多细节。对不起,看看我之前的问题,似乎我添加了太多不必要的信息。这一次,我没有添加足够的内容。public boolean equals(Name otherName){return this.equalsIgnoreCase(otherName);}是现在的样子,但是equalsIgnoreCase给了我一个找不到符号的错误,所以我想我实现错了。@user1740066,请告诉我们Name是如何实现的。我会相应地更新答案。
public boolean equals(Name otherName) {
return (otherName.equalsIgnoreCase(this));
}
public boolean equals(Name otherName) {
return (equalsIgnoreCase(otherName));
}