报告主要用作基元类型的包装器类型的局部变量。

在某些情况下,装箱可能会导致严重的性能损失,尤其是在循环中。

采用启发估计装箱操作次数。 例如,循环内的转换视为要多得多。

示例:

  public void example() {
    Integer value = 12;
    needBox(value);
    for (int i = 0; i < 10; i++) {
      // 循环的用法正变得越来越频繁
      needPrimitive(value);
    }
  }

  void needPrimitive(int value) {}
  void needBox(Integer value) {}

在应用快速修复后:

  public void example() {
    int value = 12;
    needBox(value);
    for (int i = 0; i < 10; i++) {
      // 循环的用法被视为进行得越来越频繁
      needPrimitive(value);
    }
  }

  void needPrimitive(int value) {}
  void needBox(Integer value) {}

2018.2 的新功能