Проблема
Мне нужно создать уникальный id
для каждого Person
объекта.
public interface Person
{
String getName();
}
public class Chef implements Person
{
String name;
....
// all other instance variables are not unique to this object.
}
public class Waiter implements Person
{
String name;
....
// all other instance variables are not unique to this object.
}
Дополнительная информация
Все остальные переменные экземпляра внутри Chef
не являются уникальными для конкретного Chef
.Мы также не можем добавить дополнительные переменные в класс Chef
, чтобы сделать его уникальным.Это потому, что эта информация поступает с внутреннего сервера, и я не могу изменить класс Chef
. Это распределенная система.
Что я пытаюсь сделать
Я хочу создать целое число, которое позволит мне отобразить этот Person
объект.Я пытался создать «уникальный» id
.
private int makeId(Person person)
{
int id = person.getName()
.concat(person.getClass().getSimpleName())
.hashCode();
return id;
}
Однако я знаю, что это не совсем уникально, потому что hashCode для имени не гарантирует ничего уникального.
Без использования random я могу сделать это id
уникальным?
Я прошу прощения за недопонимание , но я не могу добавить больше полей в мой Chef
или Waiter
класс объектов, и приложение распространяется .