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);
}
}
答案 0 :(得分:2)
你在<{1}}类
中有不的默认构造函数变化
Persons
到
max = a.equal(new Persons());
或提供默认构造函数
答案 1 :(得分:0)
类Person
public Persons(String name) {
this.name = name;
}
但是,您可以像这样创建Person
的新实例:
max = a.equal(new Persons());
解决方案:
创建默认构造函数:public Persons () { }
使用现有构造函数:max = a.equal(new Persons(""));
答案 2 :(得分:0)
提供参数化时,始终添加默认构造函数。
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);
}
}
答案 3 :(得分:0)
您没有Person的默认构造函数,
max = a.equal(new Persons("")); // <-- need a String.
此外,您应该将方法命名为equals()
,因为这是Object方法;
@Override
public boolean equals(Object p) {
if (p instanceof Persons) {
return this.name.equals(((Persons) p).name);
}
return false;
}
答案 4 :(得分:0)
你也没有像这样的构造函数:
public Persons() //no parameter
{
this.name = name;
}
因此您无法使用上述构造函数创建Persons
(哇!太多人)的新实例。
答案 5 :(得分:0)
问题在这里
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"));
或者您可以不向Persons
类添加任何参数构造函数。
public Persons(){
}