Actionscript 3 如何获取参数';函数的类型是什么?

Actionscript 3 如何获取参数';函数的类型是什么?,actionscript-3,actionscript,Actionscript 3,Actionscript,我想从一个匿名函数中猜出每个参数的类型,比如用反射映射一个类,但只针对一个函数,比如 public function guessMyArgumentType(f:Function):void { for each (argument:* in f.arguments) { trace(typeof(argument)); } } 谢谢 更新 也许这太疯狂了,但是: public static function guessMyArgumentType(f:

我想从一个匿名函数中猜出每个参数的类型,比如用反射映射一个类,但只针对一个函数,比如

public function guessMyArgumentType(f:Function):void {

    for each (argument:* in f.arguments) {

        trace(typeof(argument));

    }

}
谢谢

更新

也许这太疯狂了,但是:

public static function guessMyArgumentType(f:Function):String {

    try {

        f(2);
        return "int";

    } catch (error:Error) {

        try {

            f("a");
            return "String";

        } catch (error:Error) {

            try {

                f(["uno", "dos", "tres"]);
                return "Array";

            } catch (error:Error) {

                try {

                    f(new ArrayCollection(["uno", "dos", "tres"]));
                    return "ArrayCollection";

                } catch (error:Error) {

                    return "WTF?";

                }

            }

        }

    }

}

flash.utils.getQualifiedClassName()
此处引用:

arguments数组只能从给定函数内部访问

我不认为你的要求是可行的,除非你做了一些疯狂的尝试/捕获的事情,但如果参数是自定义类,那么这将总是失败的,所以这不是一个很好的解决方案

另一个选项是添加一些描述函数参数的自定义元数据<代码>[YourMeta(arg1=“String”,arg2=“Array”)]位于每个函数上方,然后使用
ObjectUtil.getClassInfo(f).metadata
查找该信息。这需要将元添加到已编译的元标记args中


可能还有另一种方法可以通过未发布到ASDocs的内容,但我不知道。

flash.utils.getQualifiedClassName()
,如此处所述:

arguments数组只能从给定函数内部访问

我不认为你的要求是可行的,除非你做了一些疯狂的尝试/捕获的事情,但如果参数是自定义类,那么这将总是失败的,所以这不是一个很好的解决方案

另一个选项是添加一些描述函数参数的自定义元数据<代码>[YourMeta(arg1=“String”,arg2=“Array”)]位于每个函数上方,然后使用
ObjectUtil.getClassInfo(f).metadata
查找该信息。这需要将元添加到已编译的元标记args中


可能还有另一种方法可以通过未发布到ASDocs的内容,但我不知道。

+1感谢元数据提示!。我将通过传递desire casting类型作为参数来解决这个问题。+1感谢元数据提示!。我将通过传递欲望类型作为参数来解决这个问题。