интерфейсы со свойствами - PullRequest
1 голос
/ 01 февраля 2010

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

Accessor types must match.

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

package com.objects{


    public interface IKiller {

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

    }
}

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

Ответы [ 3 ]

4 голосов
/ 01 февраля 2010

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

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

1 голос
/ 01 февраля 2010

Я думаю, что проблема в том, что

function get Systems():Array;

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

function set Systems(value:TargetSystem):void;

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

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

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

0 голосов
/ 01 февраля 2010

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...