如果方法的签名将Map集合作为参数的默认值,则在使用ReflectionClass检查该方法时会引发错误。
Cannot use collection initialization in non-collection class
该课程如下:
<?hh //strict
namespace Acme;
class Foo
{
protected Map<string, string> $options;
public function __construct(Map<string, string> $options = Map{})
{
$this->options = $options;
}
}
时发生反射错误
$reflection = new ReflectionClass('Acme\Foo');
$reflection->getConstructor()->getParameters();
该类在实际使用时正确实例化。我只能使用Reflection创建错误。
问题
是否有一些我做错了,或者我缺少的概念,让这项工作按预期进行?我希望getProperties
返回方法的属性,就像它对任何其他值/类型一样。