Java 如何避免使用Johann';s

Java 如何避免使用Johann';s,java,guid,uniqueidentifier,Java,Guid,Uniqueidentifier,我正在使用johann guid生成字母数字ID。我在UUID类(Johann的UUID)中使用getTime方法生成数字ID 但有时它会为数字Id生成负isd(例如-2323)。如何避免生成负唯一id。?请帮助我数学对象有一个绝对值函数,它将处理您关心的负值。但是,您可能会失去独特性。如果你的数字是负数,什么时候重要?下面是一个示例测试: public class Test{ public static void main(String args[]){ Integer a = -8;

我正在使用johann guid生成字母数字ID。我在UUID类(Johann的UUID)中使用getTime方法生成数字ID


但有时它会为数字Id生成负isd(例如-2323)。如何避免生成负唯一id。?请帮助我

数学对象有一个绝对值函数,它将处理您关心的负值。但是,您可能会失去独特性。如果你的数字是负数,什么时候重要?下面是一个示例测试:

public class Test{ 

public static void main(String args[]){
  Integer a = -8;
  double d = -100;
  float f = -90;    

  System.out.println(Math.abs(a));
  System.out.println(Math.abs(d));     
  System.out.println(Math.abs(f));    
  }
}
这将产生以下结果:

8
100.0
90.0

如果UUID是字母数字的,为什么要关心它们是否为负数?如果有随机输入的字母,我想你不会将它们用作数字……请小心,因为
Math.abs()
在某些情况下可能会输出负值。一个例子是当输入负2^31(
Integer.MIN_VALUE
)作为
int
时。(正2^31超出了
int
范围,因此输出为负值。)但是abs(guid)保证返回唯一的数字吗?感谢Smallhacker,我不知道。Jay Elston,Math.abs不是唯一标识符,而是获取传入的数字的绝对值。