JavaでGUIDを作成するための最良の方法は何ですか?
Java 5以降にバンドルされている UUIDクラス を見てください。
例えば:
Java.util.UUID.randomUUID();
どの種類の UUID が必要かによって異なります。
標準のJava UUID
クラスは、 バージョン4 (ランダム)のUUIDを生成します。 (UPDATE - バージョン3 (name)のUUIDも生成できます。生成できませんが、他のバリアントも処理できます。それら。 (この場合、 "handle"は UUID
、 byte[]
または long
の表現からString
インスタンスを構築することを意味します。そして適切なアクセサを提供します。
Java UUIDジェネレータ(JUG) の実装は、「 RFC-4122 で定義されているように、すべての「公式3」タイプのUUIDをサポートすることを目的としています... RFCは実際には4つのタイプを定義し、5番目のタイプに言及していますが。
UUIDの型と変種の詳細については、 ウィキペディア に概要があり、詳細な説明は RFC 4122 およびその他の仕様にあります。
例を挙げてMark Byersの答えを拡張するだけです。
import Java.util.UUID;
public class RandomStringUUID {
public static void main(String[] args) {
UUID uuid = UUID.randomUUID();
String randomUUIDString = uuid.toString();
System.out.println("UUID=" + randomUUIDString );
}
}
他の答えは、特に これ によって スティーブンC が正しいです。
Java内でのUUID 値の生成は、 バージョン4(ランダム) に制限されています。セキュリティ上の問題があるためです。
他のバージョンのUUIDが必要な場合は、次のように呼び出してUUIDを生成するために、Javaアプリケーションを JVM の外側に移動させる必要があります。
uuidgen
は、Mac OS X、BSD、およびLinuxにあります。uuid-ossp
拡張子はしばしば Postgres にバンドルされています。 )その拡張は、バージョン1、3、および4の値と、さらに2つのバリエーションを生成することができます。uuid_generate_v1mc()
- バージョン1のUUIDを生成しますが、コンピュータの実際のMACアドレスの代わりにランダムなマルチキャストMACアドレスを使用します。uuid_generate_v5(namespace uuid, name text)
- バージョン5のUUIDを生成します。これは、ハッシュ方法としてSHA-1が使用されている点を除けば、バージョン3のUUIDのように機能します。