在 System.out.println 中调用方法时显示错误" Cannot resolve method 'println(void)' "



The Person class:

public class Person {
public Person() { }
public void isTheSamePerson (Person p){
if (p.equals(p)) {
System.out.println("They have the same names !!!");
} else{
System.out.println("They have different names !!!");
}
}
}

驱动程序类:

public class Driver {
public static void main(String[] args) {
Person Persona1 = new Person();
Person Persona2 = new Person();
System.out.print(Persona1.isTheSamePerson(Persona2));
}
}

什么时候 我正在尝试在System.out.println()中调用该方法isTheSamePerson()。我收到错误"无法解析方法'println(void('">

这里的代码中有几件事不对劲......首先,就像另一条评论说你不应该在system.out.println中调用该方法一样,因为它已经在方法中打印结果。

第二件不对劲的事情是你的平等比较器。

if (p.equals(p)) { 

你正在将对象与它自己进行比较,这是错误的。您可能想要比较对象的实例,看起来您正在尝试比较名称,所以可能类似于

if(this.name.equals(p.getName())){
}

isTheSamePerson()方法将void作为返回类型。

但是,System.out.print()需要一个字符串类型的对象。

此外,isTheSamePerson()总是打印相同的消息,因为它只需要一个Person并将其与自身进行比较。

为什么要在println方法中调用它

而不是 System.out.print(Persona1.isTheSamePerson(Persona2((;

写 Persona1.isTheSamePerson(Persona2(;

你应该得到预期的输出。

最新更新