我需要在运行时确定泛型类型是否是String、bool、int或double另一个类。我没有找到针对可为空类型执行此操作的方法:
class Foo<T> {
void foo() {
if (T == int) {
print("'T' is an int");
} else {
print("'T' is not an int");
}
}
}
void main() {
final foo = Foo<int>();
final bar = Foo<int?>();
foo.foo();
bar.foo();
}
Run Code Online (Sandbox Code Playgroud)
控制台输出:
// 'T' is an int
// 'T' is not an int
Run Code Online (Sandbox Code Playgroud)
是否有任何我不知道的语法来检查可为空类型?我已经尝试过,int?但它无法编译。
我使用Android Studio创建了一个新的Flutter 项目。我正在使用空安全,并且正在物理设备上运行应用程序,但代码生成不起作用, .dart_tool文件夹中没有flutter_gen文件夹,只有flutter_build文件夹。
\n我按照Flutter 官方国际化文档中的步骤操作
\n我没有使用Flutter Intl插件,因为它不支持空安全(我知道你可以制作一个脚本在每个生成的文件的顶部添加旧的 dart 版本作为解决方法)
\nflutter doctor 命令输出:
\n[\xe2\x9c\x93] Flutter (Channel beta, 1.26.0-17.5.pre, on Microsoft Windows [Versi\xc3\x83\xc2\xb3n 10.0.19042.804], locale es-ES)\n \xe2\x80\xa2 Flutter version 1.26.0-17.5.pre at <PATH>\n \xe2\x80\xa2 Framework revision 1fe38dcb5f (3 days ago), 2021-02-10 16:25:47 -0800\n \xe2\x80\xa2 Engine revision d4453f6018\n \xe2\x80\xa2 Dart version 2.12.0 (build 2.12.0-259.9.beta)\n\n[\xe2\x9c\x93] Android toolchain - develop for Android devices (Android SDK …Run Code Online (Sandbox Code Playgroud)