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

从匿名类引用局部变量时,它的值存储在该类的隐式字段中。 对于局部类和 lambda 也是如此。 如果变量类型为非 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); // 警告
              }
          };
      }
  }