2010-02-01 3 views
1

я пытаюсь поставить добытчик и сеттер в мою inteface, но я получаю следующее error1053:интерфейсов со свойствами

Accessor types must match. 

Ниже моя интерфейс.

package com.objects{ 


    public interface IKiller { 

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

    } 
} 

Как вы можете положить геттеры и сеттеры в интерфейс. для as3

ответ

4

Я считаю, что компилятор жалуется на то, что геттер возвращает «Array», но сеттер принимает «TargetSystem»

Эти типы должны соответствовать. (Не только в интерфейсе, но в классе, а также.)

1

Я думаю, что проблема есть тот факт, что

function get Systems():Array; 

Определяет Systems как Array и

function set Systems(value:TargetSystem):void; 

Определяет Systems как TargetSystem

Типы методов get/set должны соответствовать. Похоже, вы хотите получить свойство, но не набор (так как set позволит вызывающему указать весь новый массив).

Если вы пытаетесь разрешить вызывающему абоненту добавлять элементы в системный массив, попросите их позвонить по телефону Array.push() после звонка get.

+0

Можно ли получить свойства, чтобы действовать как массив. свойства будут действовать как массив. (т. е. можно вызвать массив подобно этому объекту.Systems [0]; – numerical25

0

Это потому, что ваш get возвращает массив, но ваш параметр принимает тип «TargetSystem» вместо массива? Обычно сеттер принимает тот же класс, что и получатель.

Смежные вопросы