使用静态工厂方法,我想创建对象(例如人),但如果正在创建具有相同条件的人,则抛出错误/异常。
我有2个类Person.java / Program.java(<-Main)
我的静态方法如下:
public class Person{
private String firstName;
private String lastName;
private Person(String firstName, String lastName){
this.firstName = firstName;
this.lastName = lastName;
}
public static Person fullName(String firstName, String lastName){
/*if(firstName.equals(this.firstName)){
System.out.println("Person already exists!");
}else{
return new Person(firstName,lastName);
}*/
return new Person(firstName, lastName);
}
}
现在很明显,已经注释掉的部分不起作用,因为人没有实例化,但我对于如何继续下去感到很遗憾。
是的,我重写了equals和hashcode!
要实现它,您应该使用Person
集合在static
类中保留所有创建实例的痕迹。请注意,如果不对它们使用弱引用,则可能会导致内存保留,这些引用仅由Person
中定义的集合引用。
然后关于现有qazxsw poi的检查,当你覆盖qazxsw poi和qazxsw poi时,你可以从参数创建一个新的Person
并检查它是否已经创建。
equals()