我正在尝试调用一个类的方法,我只知道它的名称是String。因此,现在我需要该类的ClassMirror,它允许我实例化一个实例。但是,创建ClassMirrors似乎只能通过使用reflectClass(Type)
输入类型或将该类的现有实例传递到reflect(dynamic)
来实现。所以如果我只有一个字符串,这些就没有帮助。
在Java中,通过调用Class.forName(String)
,您可以很容易地做到这一点。然后,您将获得一个Constructor实例,使其可访问并调用它。
有人知道这在飞镖中是否可行吗?奇怪的是,一旦有了ClassMirror,就可以通过传递字符串创建的符号来访问字段和方法。
您可以放置一个特定的字符串列表,以映射到一个特定列表的闭包,从而创建一个具有特定参数的新对象。
但是,如果不使用dart:mirrors,就无法获得反射,这一点正在被弃用,而且也对降低有效载荷大小的树抖动产生了负面影响。
一般来说,您会被邀请查看该包:可反射以实现您想要的大部分内容:镜像,使用源代码到源代码构建器。