2011-03-29 29 views
4

我必須讀取靜態方法內的當前類名。對於非靜態方法,我很容易調用getQualifiedClassName(this),但是在靜態方法中,這當然是無效的。任何想法 ?AS3從靜態方法獲取當前類名

謝謝

回答

1

你沒有這樣做的直接方式。如果僅僅在一個你需要的類中,你可以嘗試添加一個靜態成員來持有對這個類的引用。

static private const CLASS:Object = YourReflectedClass; 

然後,只需使用在您的靜態方法:

protected static function doReflection(): void { 
    var className:String = getQualifiedClassName(CLASS); 
} 

這將有助於瞭解更多關於使用和設置。

+0

你是正確的,也許你需要一些更多的信息。我正在用靜態方法編寫一個類。這個類是從我們項目中的許多類擴展而來的抽象類。問題是類名對於我的方法很重要,在編譯期間我不知道使用的子類的名稱。現在我的代碼使用非靜態方法工作,但它不雅觀,因爲我們必須實例化一個新對象來調用一個可以是靜態的方法 – wezzy 2011-03-29 18:06:59

+0

我不確定我是否遵循所有方式,唯一需要的是名稱每個實例的類,並希望將這些信息收集到抽象類中的方法中? – goliatone 2011-03-29 18:14:57

+0

是的,我有一個類ParentClass ParentClass.staticMethod()和從ChildClass - > ChildClass擴展ParentClass我可以調用方法ChildClass.staticMethod()。在這個方法裏面,我必須讀取字符串「ChildClass」調用該方法的子類的名稱。 – wezzy 2011-03-29 20:12:00

7

您可以在類的靜態方法使用的getQualifiedClassName(prototype.constructor)

+0

你必須在'prototype'之前給出類名,就像'MyClass.prototype.constructor'一樣......你不能直接在'MyClass'的靜態函數內調用'prototype.constructor'。有沒有辦法指定'MyClass'?我正在尋找解決方案...... – 2014-08-13 06:07:14

相關問題