如何通过存储在字符串中的名称访问 class 的对象?

how to access a class's object by its name which is stored in a String?

我想select一个对象在class中按其名称存储在一个变量中。这可行吗?所以基本上占位符的语法 -magic_syntax- 或任何其他方法如何实现。

const String kListNames = {'list1', 'list2'};

class MyClass {
  List<int> list1 = [0, 1, 2];
  List<bool> list2 = [true, false];
}

main() {
  List<dynamic> myList;
  MyClass myClass;
  for (var listName in kListNames) {
    myList = myClass.-magic_syntax-(listName);
  }
}

Dart 是一种编译时语言。无法按照您建议的方式通过变量名称与变量进行交互。

为什么不将数据存储在地图中?

Map<String, List> myData = {
    'list1':  [0, 1, 2],
    'list2': [true, false],
}:

for(final listName in myData.keys) {
 ...
}

现在您可以遍历数据键 myData.keys、值 myData.values 或两者 myData.entries