Dart - 如何将对象列表初始化为私有(private)类成员?

标签 dart

在 Dart 中,如何将对象列表初始化为私有(private)类成员?
这是我的Dartpad Link.
这是我的示例代码。

// on dartpad:  https://dartpad.dev/cfded55df52dd2bb37228d12c7ef049c
void main() {
  Co co = Co();
  print(co.getTag1());     //Out: profitable
  print(co.getMgr1().fn);  //Out: null  
}
class Co {
  List<String> _tags = ['profitable', '1999', 'public', 'NYSE'];
  
  String getTag1() {
    return _tags.first;
  }

  List<Mgr> _mgrs = List.from([
    Mgr(
      fn: 'Janice',
      ln: 'Brown',
    ),
    Mgr(
      fn: 'Laura',
      ln: 'Lopez',
    ),
    Mgr(
      fn: 'Linda',
      ln: 'Oakley',
    ),
  ], growable: false);
  
  Mgr getMgr1(){
    return _mgrs.first;
  }
  
}

class Mgr {
  String fn;
  String ln;
  Mgr({String fn, String ln});
}
具体来说,如何获得 Main >> print(co.getMgr1().fn); 的输出成为“珍妮丝”?谢谢。

最佳答案

您没有将构造函数中传递的值存储在 Mgr 的字段中。 ,因此输入不会存储在任何地方。
更改class Mgr

class Mgr {
  String fn;
  String ln;
  Mgr({this.fn, this.ln});
}
或者
class Mgr {
  String fn;
  String ln;
  Mgr({String fn, String ln}) {
    this.fn = fn;
    this.ln = ln;
  }
}
这会将传递的参数存储在类的字段中,以便以后可以访问它们。
您对 List 的初始化在这种情况下完全没问题。

关于Dart - 如何将对象列表初始化为私有(private)类成员?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62701262/

相关文章:

dart - 为什么 Angular 不需要组件名称中的破折号

flutter - 从Flutter中的Sharedpreferences获取语言

flutter - 操作系统错误:连接被对等方重置,errno = 104,地址= storage.googleapis.com,prort = 37890

firebase - 如何在 Dart 中过滤列表

dart - 如何在带有 tabBar 的屏幕上处理错误后修复 setState

dart - 是否可以在 Dart 类上要求泛型类型参数?

flutter - 我应该使用 getter 来构建小部件子树吗?

testing - 如何修复 'type ' () => T' 不是类型转换中 'T' 类型的子类型'

flutter - 如何防止多次点击一个手势?

regex - Flutter 检测 UTF8 主题标签