2009-07-20 11 views
2

javaでは、オブジェクトに対してunique stringを取得できます。文字列としてのオブジェクト参照?

as3でどうすればいいですか?

+0

ちょうど明確にするために、JavaののhashCode()は正確に "ユニーク" ではないことができるため、...ハッシュ衝突はまだCAUすることができます異なるhashCode()値を返すための別個のオブジェクト –

+0

これは役立つページです(http://www.morearty.com/blog/2008/07/28/actionscripts-different-ways-to-convert-an-object-to-a-string/)。しかし、結果一意ではありません...実際には、ほとんどの場合、特定のタイプのオブジェクトに対してまったく同じです。 – jedierikb

答えて

3

は、Javaスレッドのレスポンスと同じで、flex SDKの一部としての一意のIDジェネレータです。これはmx.utils.UIDUtilの下にあります。かなり簡単に動作します。

var ID:String = UIDUtil.createUID(); 

これが役に立ちます。

+0

また、flexでは、mx.utils.NameUtilにcreateUniqueNameがあります。 – jedierikb

0

サードパーティのハッシュ関数(md5やsha1など)を使用してみることができます。 Javaのオブジェクトのハッシュコード(偶然C#)もハッシュ関数によって生成されます。 Here's one I found on Google

これが役に立ちます。

3

あなたはユニークなUINTを取得するには、これを使用することができます...あなたは、...それを文字列に変換したい場合は:-P

package { 
    import flash.utils.Dictionary; 
    public class ObjectUIDUtil { 
     private static var _uids:Dictionary = new Dictionary(true); 
     private static var _cter:uint = 1; 
     public static function getUID(obj:Object):uint { 
      var ret:uint = _uids[obj]; 
      return (ret == 0) ? (_uids[obj] = _cter++) : ret; 
     } 
    } 
} 

これは多分必要ではないことを、予めご了承くださいflash.utils.Dictionaryをキーとしてオブジェクトを使用して直接...

greetz

back2dos

+0

私は好奇心が強いです。通常のオブジェクトに対して 'Dictionary'を使う利点は何ですか? (私は正直に分かりませんし、興味があります)。 – Marty

+1

ここで問題となるのは、 'Object'のキーとして値を使用した場合、値は文字列に変換され、同じ型のオブジェクトはデフォルトで同じ文字列表現を持つため、同じIDを取得します同じクラスのすべてのインスタンス。 'String''''''''''''と' 'int'''''を同じキーとして扱いますが、プリミティブでないオブジェクトをそのアイデンティティーで区別します。 – back2dos

関連する問題