| Package | org.libspark.utils |
|---|---|
| Class | public class ClassUtil |
abstraction(instance:Object, klass:Class) :void
cast(instance:Object) :*
getClassName(instance:Object) :String
multiSingleton(instance:Object, maxCount:uint = 1) :void
singleton(instance:Object) :void
public static function abstraction(instance:Object, klass:Class):voidクラスのコンストラクタ内で呼び出すことで、そのクラスを抽象クラスのように振舞わせます. このメソッドは、必ずクラスのコンストラクタ内で使用してください。 このメソッドを使用すると、そのクラスは直接インスタンスを作成できなくなります。 インスタンスを作成するためには、このクラスを継承したサブクラスを作る必要があります。
instance:Object
klass:Class
以下のコードでは AbstractTest クラスと、これを継承した AbstractSubClass を作成します。 AbstractTest クラスからインスタンスを作成しようとすると ArgumentError が throw されますが、 AbstractTest クラスを継承した AbstractSubClass は、正常にインスタンスを生成することができます。import org.libspark.utils.ClassUtil; public class AbstractTest { public function AbstractTest() { ClassUtil.abstraction(this, AbstractTest); } public function testCall():void { trace("create instance ok!"); } } public class AbstractSubClass extends AbstractTest { public function AbstractSubClass() { testCall(); } }
public static function cast(instance:Object):*指定したオブジェクトを型指定無しで返します。
instance:Object
*
public static function getClassName(instance:Object):Stringインスタンスオブジェクトからクラス名を表す文字列を返します。
instance:Object
String
public static function multiSingleton(instance:Object, maxCount:uint = 1):voidクラスのコンストラクタ内で呼び出すことで、そのクラスのインスタンス数を制限します。 このメソッドは、必ずクラスのコンストラクタ内で使用してください。 このメソッドを使用すると、コンストラクタは指定回数まで呼び出すことができるようになります。
instance:Object
maxCount:uint (default = 1)
以下のコードでは MultiSingletonTest のコンストラクタは 3 度だけ呼び出すことができます。 通常 getInstance() メソッド等を作成して併用しますが、サンプルでは省略しています。import org.libspark.utils.ClassUtil; public class MultiSingletonTest { public function MultiSingletonTest() { ClassUtil.multiSingleton(this, 3); } }
public static function singleton(instance:Object):voidクラスのコンストラクタ内で呼び出すことで、そのクラスのインスタンス数を制限します。 このメソッドは、必ずクラスのコンストラクタ内で使用してください。 このメソッドを使用すると、コンストラクタは 1 度だけ呼び出すことができるようになります。
instance:Object
以下のコードでは SingletonTest のコンストラクタは 1 度しか呼び出せなくなります。 通常 getInstance() メソッド等を作成して併用しますが、サンプルでは省略しています。import org.libspark.utils.ClassUtil; public class SingletonTest { public function SingletonTest() { ClassUtil.singleton(this); } }