我一直在得到这个非常奇怪的错误,我不知道如何去做。
我目前有一个使用RESTful
端点的服务,并有一个标题,应该是一个UUID
。它适用于常规UUID和明显的非UUID值,例如2bcd-d2efc
,但是当遇到诸如4c95b7e9-5051-4e5b-be30-eed67988
之类的UUID时,它在结束时缺少4个十六进制值,在我的REST控制器上接收它时,它需要的值变得像4c95b7e9-5051-4e5b-be30-0000eed67988
。
这使得最初无效的UUID绕过我们现有的UUID类型转换验证。
关于为什么发生这种零填充的任何想法(我假设它与序列化有关)以及如何修复它?如果有帮助,控制器在Java 8中实现。
如果你看看UUID.fromString
,你可以看到它没有强制执行最小长度。 UUID.fromString("0-0-0-0-0").toString()
将返回“00000000-0000-0000-0000-000000000000”。因此,就UUID
而言,你传入的内容相当于它到达时的样子。