问题标签 [dart-mirrors]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
2186 浏览

dart - 通过飞镖中的反射获取私有变量

我想在飞镖的对象中获取私有变量。

这个变量没有吸气剂,所以我想通过反射来做到这一点。

我尝试了很多方法,但对我没有任何作用。

例如,当我这样做时:

我收到一个错误:

fieldName 没有 getter。这很正常,因为变量没有吸气剂。

我怎样才能得到这个变量?

使用测试代码编辑:

这是我的反射测试(测试变量是反射类(MyClass))

我收到此错误:

类“_LocalInstanceMirror”没有具有匹配参数的实例方法“getField”。

如果我这样做:

我得到:

类“DynamicInjector”没有实例获取器“_PRIMITIVE_TYPES@0x1b5a3f8d”。

与声明的值相同。

0 投票
1 回答
248 浏览

dart - 带镜像的动态类型转换

问题:

是否可以动态转换为类型?

例如,这是否可能,使用镜像:

上下文:我想创建一个定义validate方法的 Mixin 类:

它将遍历为混入的类定义的变量,并检查文档中的变量是否属于同一类型。

现在,它正在获取runtimeType各个变量的值,但它非常严格,因为它不强制转换。例如:

最好检查一下as,但我不知道如何让它工作。因为:

而不是像人们预期的那样加倍。

可能吗?

0 投票
1 回答
255 浏览

dart - 通过 getField 镜像获取类变量的值

我试图了解 Mirrors Api 的工作原理。具体来说,如何Symbol使用getField.

对于该getField方法,它应该适用于任何Symbol作为 getter 的方法,并且它可能是隐式的。因此,我理解这一点getField可以直接在字段上调用。在下面的代码示例中,应该隐式定义aand的 getter。b

但是代码抛出,抱怨它找不到任何吸气剂。 Breaking on exception: object of NoSuchMethodError, 并在 'dart:mirrors-patch_mirrors_impl.dart'native "ClassMirror_invokeGetter";

必须明确定义一个吸气剂才能使其工作感觉是错误的,但我不明白为什么这不起作用。当然,mirrors.dart 仍然有很大的变化,所以我认为这是针对 v1.2.0 的。

0 投票
1 回答
99 浏览

reflection - 我无法理解 Dart 镜像中“isSubtypeOf”的工作原理

根据这个测试,我不能用参数“list”调用方法“method”,因为参数类型与方法参数的类型不兼容。

我的测试哪里错了?

输出:

附言

也许我不明白一些东西,但它仍然不起作用。

输出:

0 投票
2 回答
209 浏览

dart - 运算符“is”和“TypeMirror.isSubtypeOf”之间的关系

根据有关'dart:mirror'文件bool isSubtypeOf(TypeMirror other)

如果我正确理解文档,"bool isSubtypeOf(TypeMirror other)"我认为它应该作为"operator is".

此代码按预期工作:

输出:

但我无法理解“这个结果是否正确”?

输出:

0 投票
1 回答
371 浏览

dart - 如何通过反射获得具有指定类型参数的类型镜像?

解释问题的示例代码。

如何通过反射获得具有指定类型参数的类型镜像?

附言

我认为我不需要解释“为什么需要这个?” 因为我们都知道数据水合需要此功能。

这在使用反射来提高数据一致性的数据编解码器中也非常有用。

正如你所注意到的,我不会解释为什么。

0 投票
1 回答
1327 浏览

dart - Dart:如何仅为特定类型的变量将变量标识符名称转换为字符串

在这里使用 Dart。

正如上面的标题所暗示的,我有一个包含三个 bool 实例变量的类(如下所示)。我想要做的是创建一个函数来检查这些实例变量的标识符名称并将它们中的每一个打印在一个字符串中。ClassMirror 类 ALMOST 附带的 .declarations getter 执行此操作,除了它还为我提供了构造函数的名称和我在类中拥有的任何其他方法。这不好。所以我真正想要的是一种按类型过滤的方法(即,只给我作为字符串的布尔标识符。)有什么方法可以做到这一点?

输出是:isMarried isBoard2 isBoard3 boolsToStrings BooleanHolder

0 投票
1 回答
132 浏览

dart - 是否可以使用 dart:mirrors 列出 Dart 类的参数?

假设我有一个Person这样定义的类:

有什么方法可以Person使用dart:mirrors. 基本上,我正在开发一个涉及反射的库,我希望能够使用类的参数创建布尔值,如下所示:

更新

我尝试了以下方法,但无济于事:

当我运行它时,我得到的只是一个空列表。

0 投票
3 回答
11134 浏览

dart - 在 Dart 中将类类型作为变量传递

可以将类类型作为变量传递给 Dart 吗?

我正在尝试执行以下操作:

在 python 中类似的代码可以正常工作。new a()在 Dart 中,我在抱怨a不是类型时遇到错误。

是否可以将类对象用作变量?如果没有,推荐的解决方法是什么?

0 投票
1 回答
742 浏览

design-patterns - 动态访问对象方法

在 Dart 中如何做到这一点?


另外,这个想法/模式叫什么?动态吸气剂?数据驱动的吸气剂?对象的可变消息/属性?