Java 方法调用中的编译错误
您的Java 方法调用中的编译错误,java,Java,您的Persons类中没有默认构造函数 改变 class Persons { private String name; public Persons(String name) { this.name = name; } public boolean equal(Persons p) { return p.name.equals(this.name); } } public class pa { public
Persons
类中没有默认构造函数
改变
class Persons {
private String name;
public Persons(String name) {
this.name = name;
}
public boolean equal(Persons p) {
return p.name.equals(this.name);
}
}
public class pa {
public static void main(String ar[]) {
Persons a = new Persons("Roman");
boolean max;
max = a.equal(new Persons());
System.out.print(max);
}
}
到
或者提供默认构造函数类中只有一个构造函数Person
max = a.equal(new Persons("someValue"));
但是,您创建了一个新的Person
实例,如下所示:
public Persons(String name) {
this.name = name;
}
解决方案:
publicpersons(){}
max=a.equal(新成员(“”)代码>
在提供参数化构造函数时,始终添加默认构造函数
max = a.equal(new Persons());
您没有Person的默认构造函数
class Persons {
private String name;
public Persons(){
}
public Persons(String name) {
this.name = name;
}
public boolean equal(Persons p) {
return p.name.equals(this.name);
}
}
此外,您没有这样的构造函数:
@Override
public boolean equals(Object p) {
if (p instanceof Persons) {
return this.name.equals(((Persons) p).name);
}
return false;
}
因此,您无法使用上述构造函数创建Persons
(哇!太多person.)的新实例。问题就在这里
public Persons() //no parameter
{
this.name = name;
}
你必须把这个改成
Persons a = new Persons("Roman");
boolean max;
max = a.equal(new Persons()); // Persons class don't have no-argument construtor
或者,您可以不向Persons
类添加参数构造函数
max = a.equal(new Persons("yourValue"));
想就错误消息给出提示吗?欢迎提供一些介绍性文本
Persons a = new Persons("Roman");
boolean max;
max = a.equal(new Persons()); // Persons class don't have no-argument construtor
max = a.equal(new Persons("yourValue"));
public Persons(){
}