在ActionScript中,有没有办法检查输入参数是否是任何类型的有效Vector?

tel*_*.io 6 flash actionscript actionscript-3

在以下代码中:

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);
...
Run Code Online (Sandbox Code Playgroud)

我正在寻找的是类似的东西 _var is Vector.<*>

但是Vector.<*>不是一个有效的表达,甚至是Vector.不能放在运营商的右侧.

有没有办法检查输入参数是否是任何类型的有效Vector?

Dan*_*kin 4

这是一个应该有效的方法。我相信一定有(当然?)有一种不使用字符串的更好方法,但这种方法应该可以帮助您渡过难关。

/**
 * 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;
}
Run Code Online (Sandbox Code Playgroud)