Flutter Dart-动态获取类的属性

问题描述 投票:0回答:1

我想通过传递字符串名称来获取类的属性。我该怎么办?

class A {
  String fName ='Hello';
}

main() {
A a = A();
String var1='fName'; // name of property of A class

print (a.fName); // it is working fine

print (a.$var1); // it is giving error that no getter in A class. but I want to pass var1 and automatically get the associate property

}
class flutter dart parameter-passing
1个回答
0
投票

一种快速的解决方法是,

  1. 将您的类转换为JSON。
  2. 通过json [key]访问属性。
void main() {
  String var1='name';
  String var2='age';
  Info info= Info(name:"Suman", age:4);
  final json=info.toJson();
  print("NAME = ${json[var1]}");
  print("AGE = ${json[var2]}");
}

class Info {
  String name;
  int age;

  Info({this.name, this.age});

  Info.fromJson(Map<String, dynamic> json) {
    name = json['name'];
    age = json['age'];
  }

  Map<String, dynamic> toJson() {
    final Map<String, dynamic> data = new Map<String, dynamic>();
    data['name'] = this.name;
    data['age'] = this.age;
    return data;
  }
}

希望这会有所帮助。干杯。

© www.soinside.com 2019 - 2024. All rights reserved.