首页 > 解决方案 > Analyzer 不会强制在抽象类上实现“必需”的 Flutter Foundation 标记

问题描述

我正在考虑提交问题,但我想知道您的意见,看看是否真的如此。

情况是这样的:如果我在构造函数上有一个带有所需公共参数的抽象类,分析器会强制孩子对其进行检测。但是,如果我使用带有requiredFlutter Foundation 标记的命名参数执行此操作,分析器将无法识别它并允许编译没有问题

import 'package:flutter/foundation.dart';

abstract class AbstractPrint {
  final String stringTest;

  AbstractPrint({@required this.stringTest});

  void printString();
}

class RealPrint extends AbstractPrint {
  @override
  void printString() {
    print(stringTest);
  }
}


void main() {
  final realPrint = RealPrint();
  realPrint.printString();  
}

更新

当我将此示例分离到一个干净的文件夹并检查时flutter analyze,分析器输出为

错误 • 参数“stringTest”的值不能为“null”,因为它的类型,并且没有提供非空默认值 • lib/main.dart:6:33 • missing_default_value_for_parameter
发现1 个问题。(在 1.7 秒内运行)

奇怪的是 VS Code 编译没有问题,分析器没有显示任何东西......:S

标签: flutterdartabstractfoundationrequired

解决方案


When I separate this example to a clean folder and check with flutter analyze, the analyzer output is

 error • The parameter 'stringTest' can't have a value of 'null' because of its type, and no non-null default
         value is provided • lib/main.dart:6:33 • missing_default_value_for_parameter
1 issue found. (ran in 1.7s)

The strange thing is VSCode compiles without problem and the analyzer don't show anything... :S


推荐阅读