Java で一意の 32 ビット数を生成する必要があります。インターフェイスで必要な Java int として数値を返す必要があります。これについていくつかのアイデアを共有していただけますか?
この番号は MySQL PK として使用され、複数のスレッドが独自の一意の ID を同時に生成する可能性があります。(申し訳ありませんが、MySQL の増分 ID を使用しないことが決定されました)
UUID クラスを試しましたが、生成されるデータのビット数が使用できるビット数を超えているようです。
私はこれを見つけましたが、それが機能するかどうかはわかりません:
// seems no way to get int
UUID id = UUID.randomUUID();
System.out.println(id);
// not working either?
java.rmi.server.UID uid = new java.rmi.server.UID();
System.out.println(uid.toString());
// the one i am using
SecureRandom prng = SecureRandom.getInstance("SHA1PRNG");
prng.setSeed(System.currentTimeMillis());
int ret = prng.nextInt();
System.out.println(ret);