Я не хочу повторять здесь другие ответы. Так что да, если вы используете синглтон, то ответ Мэтью - это то, что вы хотите. Убедитесь, что вы не путаете singleton только с неизменным объектом . Если у вас есть неизменяемый объект, вам придется реализовать метод hashCode ().
Помните, что существует только один экземпляр синглтона. Таким образом, по умолчанию достаточно hashCode.
public class ImmutableNotSingleton {
private final int x;
public ImmutableNotSingleton(int x) { this.x = x; }
// Must implement hashCode() as you can have x = 4 for one object,
// and x = 2 of another
@Override public int hashCode() { return x; }
}
Если вы использовали неизменяемый, не забудьте переопределить equals (), если вы переопределяете hashCode ().