Dart 对可能的空值调用方法时是否使用问号运算符?

Dart 对可能的空值调用方法时是否使用问号运算符?,dart,Dart,我有一个变量,其中包含一个可能为null的对象。当试图调用一个方法时,我必须检查null。如果变量为null,我希望结果为false。什么样的风格被认为是好的和可读的 e、 g 特别是当在if语句中使用时,我认为第一个版本更可读: if (mc?.boolMethod())... 对 if (mc != null && mc.boolMethod())... 但是IntelliJ给了我一个提示,“?”运算符的值可以是“null”,这不适合作为局部运算符的操作数。(逻辑运算符中

我有一个变量,其中包含一个可能为null的对象。当试图调用一个方法时,我必须检查null。如果变量为null,我希望结果为false。什么样的风格被认为是好的和可读的

e、 g

特别是当在if语句中使用时,我认为第一个版本更可读:

if (mc?.boolMethod())...

if (mc != null && mc.boolMethod())...
但是IntelliJ给了我一个提示,“?”运算符的值可以是“null”,这不适合作为局部运算符的操作数。(逻辑运算符中的空\u-aware\u)。确定-这是正确的,因为当变量为null时,我使用null作为布尔值。但在我的情况下没关系,我尽量避免压制警告


建议的方法是什么?其他想法?

我认为一个共同的模式是

  bool val1 = (mc?.boolMethod() ?? false);

此处不需要paren,但如果将此类表达式嵌入到更复杂的表达式中,则通常需要paren才能获得预期的行为,因为
??

的优先级较低。谢谢。这并不像我希望的那么好,但这可能是最好的方式。
  bool val1 = (mc?.boolMethod() ?? false);