简体   繁体   中英

Final initialization error in constructor

I have a final and I am trying initializing that in the constructor. It is giving me error & If I don't make it final I get a warning.

This class (or a class which this class inherits from) is marked as '@immutable', but one or more of its instance fields are not final: GenderCard.genderSvg",

My Code:

  GenderCard({@required this.genderType}) {
    genderSvg = '/assets/' + 'genderType' + '.svg';
  }
  final String genderType;
  final String genderSvg;

  @override
  Widget build(BuildContext context) {

final instance variables must be initialized in the initializer list. See the language guide .

Instance variables can be final but not const. Final instance variables must be initialized before the constructor body starts — at the variable declaration, by a constructor parameter, or in the constructor's initializer list.

Change your constructor to:

class GenderCard {
  GenderCard({@required this.genderType})
      : genderSvg = '/assets/$genderType.svg';

  final String genderType;
  final String genderSvg;
}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM