小编Gil*_*esh的帖子

Dart:如何在运行时确定可为空的泛型类型?

我需要在运行时确定泛型类型是否是Stringboolintdouble另一个类。我没有找到针对可为空类型执行此操作的方法:

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?但它无法编译。

generics types nullable runtime dart

5
推荐指数
1
解决办法
1361
查看次数

Flutter 国际化,国际代码生成不起作用

我使用Android Studio创建了一个新的Flutter 项目。我正在使用空安全,并且正在物理设备上运行应用程序,但代码生成不起作用, .dart_tool文件夹中没有flutter_gen文件夹,只有flutter_build文件夹。

\n

我按照Flutter 官方国际化文档中的步骤操作

\n

我没有使用Flutter Intl插件,因为它不支持空安全(我知道你可以制作一个脚本在每个生成的文件的顶部添加旧的 dart 版本作为解决方法)

\n

flutter 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)

code-generation android-studio flutter dart-null-safety

2
推荐指数
1
解决办法
1万
查看次数