groovy变量是否为null初始化,或者这是一个IntelliJ错误?

rip*_*234 1 groovy

IntelliJ以灰色突出显示'foo'变量,并说"不使用赋值".我想知道的是 - 它是对还是不对......

如果这是java而不是groovy,我知道这不对.

public class Foo
{
  public Foo()
  {
    Foo foo = null; // this 'foo' instance is gray ("assignment not used")
    try
    {
      foo = new Foo()
      // ...
    }
    finally
    {
      if (foo != null)
        foo.release();
    }

  }

  public void release(){}
}
Run Code Online (Sandbox Code Playgroud)

ata*_*lor 6

必须在使用前显式初始化Groovy(和Java)局部变量.Java语言规范:变量的初始值.

局部变量(§14.4,§14.14)必须在使用之前通过初始化(第14.4节)或赋值(第15.26节)以可以使用明确赋值规则验证的方式显式赋予值(§14.4,§14.14) 16(确定任务)).


Max*_*dev 5

这是一个错误.我创建了一个问题http://youtrack.jetbrains.net/issue/IDEA-81188