我需要比较一个类的2个实例,它有equals
方法重写 - 它返回的字符串相等的串联参数。但我需要确定只存在1个实例。为此,我想检查参考。如果equals()方法被覆盖,Java中是否有可能将引用与类的实例进行比较?
在Java中可能吗?
我需要比较一个类的2个实例,它有equals
方法重写 - 它返回的字符串相等的串联参数。但我需要确定只存在1个实例。为此,我想检查参考。如果equals()方法被覆盖,Java中是否有可能将引用与类的实例进行比较?
在Java中可能吗?
使用==
来比较参考。足以确定不同的变量是否指向同一个实例。
我不完全确定你要做什么,但如果你需要确保只有一个东西的实例存在,那么你可以使用static关键字来做到这一点。有多种方法可以确保使用静态方法,例如,创建一个名为count的静态变量,用于跟踪对象已创建多少个实例。然后在该对象的构造函数中,您只需增加计数。要查看是否有多个对象实例,只需检查count变量,它应该告诉你。
确保只有一个实例存在的简单方法是使用Enum。
public enum MyEnum {
NameOfSingleton("aPropertyValue");
private String aProperty;
private MyEnum(String aProperty) {
this.aProperty = aProperty
}
public getAProperty() {
return this.aProperty;
}
使用它同样简单。
MyEnum.NameOfSingleton.getAProperty();
这并不真正解决您的平等问题,但它解决了您需要一个类的单例实例。