2010-02-01 71 views
1

我試圖把getter和setter到我inteface,但我得到以下error1053:接口與性能

Accessor types must match. 

下面是我的界面。

package com.objects{ 


    public interface IKiller { 

     function get Systems():Array; 
     function set Systems(value:TargetSystem):void; 

    } 
} 

你是如何將getter和setter放入界面的?對於AS3

回答

4

我相信編譯器抱怨的是,getter方法會返回一個「陣列」,但二傳手採用「TargetSystem」

這些類型必須匹配。 (不僅在一個接口,但在一類爲好。)

1

我認爲這個問題存在着

function get Systems():Array; 

定義Systems作爲Array

function set Systems(value:TargetSystem):void; 

定義Systems事實作爲TargetSystem

get/set方法的類型需要匹配。它看起來像你想要一個get屬性,但不是一個集合(因爲集合將允許調用者指定一個全新的數組)。

如果您要允許呼叫者將項目添加到系統陣列,只需在致電get後讓他們呼叫Array.push()即可。

+0

是否有可能使屬性像數組一樣工作。將屬性的行爲像一個數組。 (即我可以像這個object.Systems [0];; – numerical25 2010-02-01 16:38:51

0

是因爲你的get返回一個數組,但你的設置需要一個「TargetSystem」類型而不是數組?通常,一個setter會接受一個getter返回的類。