2010-02-01 55 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返回的类。