弃用的 Short(String) 如何更新?

Mar*_*tta 0 java short deprecated java-11

我正在处理这个问题:

produto.setQuantidade(new Short("7"));
Run Code Online (Sandbox Code Playgroud)

Short显示已弃用,并带有标记。如何为以上 Java 9 版本更新此内容?(现在,我有 Java 11)

kuc*_*ang 5

您将使用Short.valueOf. 这是取自javadoc

已弃用。很少适合使用此构造函数。静态工厂 valueOf(short) 通常是更好的选择,因为它可能会产生明显更好的空间和时间性能

注意:公共构造函数forRemoval从 Java-16 开始。

  • @Michael 这些构造函数在 JDK 9 中被标记为“*已弃用*”,在 JDK 16 中被标记为“*已弃用,用于删除*”。这需要相当长的时间和版本来保持向后兼容性,并且在某些时间和版本中构造函数仍然存在但标记为“*已弃用,用于删除*”。有充分的理由完全摆脱这些构造函数。这些包装类是“值类型”或任何将这些对象视为原始值(即没有特定对象标识)的未来机制的自然候选者。这与支持“new”不兼容。 (2认同)
  • @Michael 当然我记得,[`LogManager.addPropertyChangeListener`](https://docs.oracle.com/javase/8/docs/api/java/util/logging/LogManager.html#addPropertyChangeListener-java.beans.PropertyChangeListener -) 和 `removePropertyChangeListener`,[在 Java 9 中已删除](https://docs.oracle.com/javase/9​​/docs/api/java/util/logging/LogManager.html#method.summary)。我记得是因为 a) 你的权利,“它几乎永远不会发生”,b) 它发生得很快,在 JDK 8 中被弃用,在 JDK 9 中被删除。不过,我认为,改变 `new` 的语义比删除更具破坏性一些构造函数。 (2认同)