Как создать экземпляр любого класса во время выполнения с любым количеством аргументов? - PullRequest
2 голосов
/ 27 декабря 2011

Может ли кто-нибудь указать мне правильное направление создания экземпляров любого класса во время выполнения с любым количеством аргументов?

В качестве примера и, если быть более точным, Я включил пример ниже. Как я мог написать этот пример в одной строке кода - хорошо, может быть, два:)

// klass: an argument of type Class ( could be Sprite, Array, MyCustomClass, … )

switch( args.length )
{
    case 0:
        return new klass();
        break;
    case 1: 
        return new klass( args[0] );
        break;
    case 2:
        return new klass( args[0], args[1] );
        break;
    case 3:
        return new klass( args[0], args[1], args[2] );
        break;
    case 4:
        return new klass( args[0], args[1], args[2], args[3] );
        break;
    default:
        break;
}

Ответы [ 2 ]

0 голосов
/ 12 сентября 2012

Мне кажется, что мой образ действий законен, что подтверждается комментариями под моим вопросом.

0 голосов
/ 28 декабря 2011

Вы можете попробовать принять параметр ... rest в своем конструкторе, а затем выполнить переключение, чтобы учесть различные варианты.

package {
    public class Test {
        public function Test (...rest) {
            if (rest[0] is MovieClip) { ... }
        }
    }
}

Например, ^^^

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