Java 向对象添加Uniqe ID(UUID)

Java 向对象添加Uniqe ID(UUID),java,object,arraylist,uuid,bank,Java,Object,Arraylist,Uuid,Bank,为了创建一个具有唯一ID的客户机对象,我正在考虑这样做(见下文)。这个新创建的对象会被随机分配一个generetad字符串并添加到对象中,然后添加到列表中吗?我以后能访问它吗?(为自己的无能感到抱歉) 目前还没有办法测试 List<Client> newCli = new ArrayList<Client>(); String uniqueID = UUID.randomUUID().toString(); Client Client = n

为了创建一个具有唯一ID的客户机对象,我正在考虑这样做(见下文)。这个新创建的对象会被随机分配一个generetad字符串并添加到对象中,然后添加到列表中吗?我以后能访问它吗?(为自己的无能感到抱歉)

目前还没有办法测试

List<Client> newCli = new ArrayList<Client>();

 String uniqueID = UUID.randomUUID().toString();

            Client Client = new Client(name1, name2, addrName, addrNumber, post, city, uniqueID);


            newCli.add(Client);
List newCli=newarraylist();
字符串uniqueID=UUID.randomUUID().toString();
客户端=新客户端(名称1、名称2、地址名、地址号、邮政、城市、唯一ID);
newCli.add(客户端);
客户机是指一个带有变量的类和一个带有参数的构造函数,如下所示


非常感谢

这很可能奏效。请注意,UUID不一定是唯一的,只是很可能是唯一的,如果您正在生成类型4 UUID,则发生冲突的可能性非常小,但非零。当多个系统同时生成UUID时,基于名称(可能是变量的规范表示形式)生成UUID或包含有关生成计算机的信息有助于减少发生冲突的机会。

我同意chrylis的观点,这种方法应该在绝大多数时间都有效,在将变量名更改为“client”之后,这样就不会与客户机类名混淆

另一种方法是使用一个静态变量,它是一个原子长的,初始化为零或数据库中的某个值。每次需要uniqueId时,使用incrementAndGet(),它将自动递增变量并返回值,您将使用该值作为uniqueId


当使用Hibernate/JPA并需要在每个新记录上使用唯一id时,我只需将id列设置为autoincrement并让数据库处理它。

请细化您的问题,因为不清楚您到底在问什么。