报告任何对 Serializable lambdas 外部的非 Serializable 局部变量、局部类和匿名类的引用。

从匿名类引用局部变量时,其值存储在该类的隐式字段中。 对于局部类和 lambdas 也是如此。 如果变量类型为非 Serializable,序列化将会失败。

示例:


  interface A extends Serializable {
      abstract void foo();
  }
  class B {}
  class C {
      void foo() {
          B b = new B();
          A a = new A() {
              @Override
              public void foo() {
                  System.out.println(b); // 警告
              }
          };
      }
  }