В следующем коде:
var a:Vector.<int> ...
var b:Vector.<String> ...
var c:Vector.<uint> ...
var c:Vector.<MyOwnClass> ...
function verifyArrayLike(arr:*):Boolean
{
return (arr is Array || arr is Vector)
}
verifyArrayLike(a);
verifyArrayLike(b);
...
То, что я ищу, является чем-то как _var is Vector.<*>
Но Vector.<*>
не допустимое выражение, даже Вектор. не может быть помещен в правую сторону операторов.
Существует ли способ проверить, является ли входной параметр допустимым Вектором какого-либо типа?
Вот метод, который должен работать. Я уверен, что должен ( наверняка ?) Быть лучший выход, который не использует строки, но этот метод должен вас подбодрить.
/**
* Finds out if an object is a generic Vector.
* It works because the value returned for getQualifiedClassName(a vector)
* is "__AS3__.vec::Vector.<the vector's type>".
* @param object Object Any object.
* @return Boolean True if the object is a generic Vector, false otherwise.
*/
function isVector(object:Object):Boolean
{
var class_name:String = getQualifiedClassName(object);
return class_name.indexOf("__AS3__.vec::Vector.") === 0;
}