Строка UUID выглядит следующим образом 38400000-8cf0-11bd-b23e-10b96e4ef00d
.Вы не можете разобрать эту строку в Integer.
Если вы хотите использовать UUID в качестве идентификаторов для клиентов, тогда объявите атрибут как UUID или String вместо Integer.
РЕДАКТИРОВАТЬ I
Кроме того, мне не нужно сохранять его как целочисленное значение, строка может выполнять работу, но просто не может получить ксоздайте это число при создании нового экземпляра этого класса.
Чтобы использовать UUID
в качестве строки: В классе Customer
атрибут id должен иметь тип String
вместо Integer
(или int
).
Чтобы получить новое String
представление UUID
, которое вы называете UUID.randomUUID().toString()
.Результат этого вызова может быть присвоен клиенту id
без выполнения какого-либо анализа.
Также обратите внимание, что подписи getter
и setter
должны соответственно изменяться.
В текущем методе setId()
вы создаете новый id
.Это переопределит id
, назначенный при создании Customer с помощью вызова в конструкторе.Если вам нужна гибкость в назначении нового идентификатора, вы можете получить setId
новую строку UUID
и назначить ее как новый id
для объекта Customer
.
public class Customer{
public Customer(String firstName, String lastName, String email, String address, String country){
this.id.set(UUID.randomUUID().toString());
}
...
public String getId(){
return this.id;
}
public void setId(String newId){
this.id = newId;
}
}
Примечание: Имя класса - Customer, а конструктор - Person.Это неправильно, оба должны иметь одинаковое имя.У вас должна быть какая-то ошибка компилятора, сообщающая вам об этом.Я предполагаю, что правильным именем класса и конструктора будет Customer
/ EDIT I
Вариант использования UUID - это когда вам необходимо иметь уникальныйИдентификатор без проверки, если идентификатор уже существует с какой-либо другой стороной (например, ядро базы данных или сервер в сетевом приложении без центрального сервера).
Если вы хотите использовать Integer (или Long) тамНет никакой реальной причины использовать случайное число, вы можете использовать порядковый номер для своих идентификаторов.
Если если в javafx есть отдельное приложение, и вы не используете разные потоки для параллельного создания клиентов, то вам не о чем беспокоиться.
С другой стороны, если это клиент-серверное приложение.Затем вы учитываете одновременный доступ клиентов к серверу.
Если вы делегируете создание идентификатора в виде последовательности в базе данных, тогда проблема параллелизма или создания дублирования в идентификаторе решается базой данных.сам.Это может быть поле автоинкремента в той же таблице клиента (если вы его используете), последовательность или таблица, действующая как последовательность.С другой стороны, если ваш класс будет генерировать идентификаторы один за другим, вам придется позаботиться о параллельных запросах.Вам нужно убедиться, что только один поток может увеличивать идентификатор одновременно.
Что касается методов получения и установки, getXxx()
возвращает значение атрибута xxx
.setXxx(123)
установит или присвоит значение 123
атрибуту xxx
;