flutter - Analyzer 不会强制在抽象类上实现“必需”的 Flutter Foundation 标记
问题描述
我正在考虑提交问题,但我想知道您的意见,看看是否真的如此。
情况是这样的:如果我在构造函数上有一个带有所需公共参数的抽象类,分析器会强制孩子对其进行检测。但是,如果我使用带有required
Flutter 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
解决方案
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
推荐阅读
- bash - 为什么“sed”不接受命令?
- python - 如何获得子目标值
- php - 在 HTML 错误中运行 PHP(此页面不工作)
- javascript - 添加 React JS Laravel 后刀片布局中断
- java - 多种格式的正则表达式异常
- office-js - 在 Word.run 流之外使用段落
- angular - 在嵌套结构指令中找不到父服务
- javascript - Webpack 别名似乎在 CRA 应用程序的 .js 文件中不起作用
- angular - 如何更改另一个组件中的元素
- apache-spark - 为 spark-cassandra-connector 设置 Cassandra 属性