【问题标题】:Is it possible to list a Dart class's parameters using dart:mirrors?是否可以使用 dart:mirrors 列出 Dart 类的参数?
【发布时间】:2026-02-10 02:30:01
【问题描述】:

假设我有一个类 Person 定义如下:

class Person {
  String name;
  Person(this.name};
}

有没有办法使用dart:mirrors 获取类Person 的参数列表。基本上,我正在开发一个涉及反射的库,我希望能够使用类的参数创建布尔值,如下所示:

bool hasParam(T t) ...

更新

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

var cm = reflectClass(Person);
print(cm.typeArguments);

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

【问题讨论】:

  • 我不确定我理解您所说的“人员参数”是什么意思。你能解释一下你想为 Person 类找到什么吗?
  • 我实际上是在尝试找到一种方法来为班级生成以下列表:List<String> personTypeArguments = ['name']。类似的东西。或者 ['name','age','hobbies'] 如果这些是 Person 类的类型参数。

标签: dart dart-mirrors


【解决方案1】:

您可以使用ClassMirror.typeArguments 获取一个类型的所有类型参数的列表。

【讨论】:

  • 出于某种原因,这似乎对我不起作用。我将修改我的原始问题以显示我的步骤。
  • “类型参数”通常用于传递给泛型类的类型,例如,对于new List<String>(),类型参数(也称为“类型参数”)是String