どちらの場合も、通常は属性suppress Setter
を作成し、デフォルトのコンストラクターで初期化します。
- UUIDは次の方法で生成されます
EcoreUtils.generateUUID()
- クラスの一意の ID はクラス static から生成されます
nextID
(通常) XML ファイルをロードできる必要があり、これらはコンストラクターで設定されたものよりも優先される必要があるため、属性は作成されません。unchangeable
nextID
クラスの一意の ID は、アプリケーションの起動時に適切な値に初期化する必要があるため、処理が少し難しくなります。
最初に多数のオブジェクトを作成し、次に古いファイルをロードする順序を考えてみましょう。オブジェクト間に重複がないようにするにはどうすればよいでしょうか? 考えられる方法の 1 つは、ID をタイムスタンプとシーケンス番号の 2 つの部分に分割することです。タイムスタンプの解決 (通常は 1 秒) 内にアプリケーションを再起動できないと仮定すると、これはまったく問題なく機能します。
このソリューションは、異なるアプリケーション インスタンスで同時に作成された場合に競合する可能性があるため、2 つ以上の古いファイルを読み込む必要がないことを前提としています....
全体として、この方法は上記の問題をすべて回避するため、通常は UUID を使用します :-)