Expando<T extends Object>final

Expando 允许向对象添加新属性。

不适用于数字、字符串、布尔值、记录、nulldart:ffi 指针、dart:ffi 结构体或 dart:ffi 联合。

Expando 不会在对象变为不可访问后保留添加的属性值。

由于您始终可以创建一个与现有数字完全相同的新数字,这意味着数字上的 expando 属性永远无法释放。为了避免这种情况,不能向数字添加 expando 属性。相同的论点也适用于字符串、布尔值和 null,它们在出现多次时也会评估为相同的值。此外,由于记录没有定义良好的持久身份,因此不能向记录添加 expando 属性。

对其他类没有限制,即使是编译时常量对象也是如此。如果向编译时常量添加 expando 属性,请小心,因为它们将永远存在。

构造函数

Expando([String? name])
创建一个新的 Expando。可选名称仅用于调试目的,并且使用相同名称创建两个不同的 Expando 将产生两个在不同属性上工作的 Expando

属性

hashCode int
此对象的哈希码。
no setterinherited
name String?
构造函数中传递给此 Expando 的名称。
final
runtimeType Type
对象的运行时类型的表示。
no setterinherited

方法

noSuchMethod(Invocation invocation) → dynamic
当访问不存在的方法或属性时调用。
inherited
toString() String
Expando toString 方法覆盖。
override

运算符

operator ==(Object other) bool
相等运算符。
inherited
operator [](Object object) → T?
获取给定对象上此扩展属性的值。
operator []=(Object object, T? value) → void
将此扩展属性在给定对象上的值设置为value