[問題] 使用 Class 類別動態建立物件的建構式參數
我想要一個物件產生器的類別
目標是以下的程式可以動
var cb:ClassBuilder = new ClassBuilder(Point, [10, 20]);
var p:Point = cb.build();
注意:Point 類別是不可修改的
也就是說我不能透過其他函數去設定建構式函數的初始值
所以我這樣寫
public class ClassBuilder
{
var c:Class;
var p:Array;
public function ClassBuilder(c:Class, p:Array)
{
this.c = c;
this.p = p;
}
public function build():c{
c.這裡要寫什麼
}
}
有兩個問題
1.build函數傳回型態問題
我不能限制 build 傳回型態是 c
不過這不要緊 可以傳回Object再轉型 或是用*
2.建構式參數傳遞問題
因為我的參數 p 是陣列
如果建構式是一個 Function 類別的函數
那麼我就可以用
var f:Function = c的建構式;
var o:Object = f.apply(null, p);
的方式去傳建構式參數
== 嘗試 1 ==
我嘗試了以下這行程式
var f:Function = Function(c);
結果得到錯誤訊息
[Fault] exception, information=EvalError: Error #1066: 不支援表單
function('function body')。
== 嘗試 2 ==
如果直接寫
c.apply(null, p);
會得到沒有 apply 這個方法
我沒梗了 這問題有解嗎?
--
blog:http://etrex.blogspot.com/
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.137.198.18
※ 編輯: etrexetrex 來自: 140.137.198.18 (06/15 16:00)
推
06/16 09:41, , 1F
06/16 09:41, 1F
→
06/16 09:41, , 2F
06/16 09:41, 2F
→
06/16 09:41, , 3F
06/16 09:41, 3F
→
06/16 09:41, , 4F
06/16 09:41, 4F
→
06/16 09:42, , 5F
06/16 09:42, 5F
→
06/16 09:43, , 6F
06/16 09:43, 6F
→
06/16 10:23, , 7F
06/16 10:23, 7F
Flash 近期熱門文章
PTT數位生活區 即時熱門文章