gpt4 book ai didi

java - sun.reflect.generics.reflectiveObjects.NotImplementedException 和 org.apache.commons.lang3.NotImplementedException 之间有什么区别

转载 作者:行者123 更新时间:2023-11-29 09:59:03 26 4
gpt4 key购买 nike

我发现有 2 个 NotImplementedException:

  • sun.reflect.generics.reflectiveObjects.NotImplementedException
  • org.apache.commons.lang3.NotImplementedException

由于第一个没有可用的文档,我无法理解它们之间的区别。这是什么区别?其中一个比另一个更好吗?

最佳答案

I have discovered there are 2 NotImplementedException

我找到了比这更多的例子。这取决于您看起来有多努力……以及在哪里。


Since there is not an available documentation for the first one ...

那是因为 sun.reflect.generics.reflectiveObjects.NotImplementedException 是一个内部类。源代码说:

"Temporary class used to indicate missing functionality"


What is this difference?

它们或多或少都表示同一件事。某些功能尚未实现。


Is one of them better than the other one?

我假设你真的在问你是否可以并且应该在你的代码中重用这些异常中的任何一个。

  1. 由于 sun.reflect... 异常是一个内部类(参见@GhostCat 的回答),不建议在您的代码中使用它。该类可能会在 Java1 的 future 版本中“消失”。这会给您的代码库带来问题。

  2. 重用org.apache.commons... 异常是合理的。事实上,根据我对 javadoc 的阅读,它设计通常可重用的。然而:

    • 这不是标准的。
    • 事实上,这个类至少有两个版本,在 org.apache.commons.langorg.apache.commons.lang3 中。 (参见项目符号 #1!)
    • 您将(可能)添加对 Apache Commons 的新依赖。这可能会增加您的维护成本;例如如果有人在 Apache Commons 中发现需要修补的安全问题。此外,如果您的公司有反开源管理人员或律师……让他们对公司的“无开源”政策给予异常(exception)的努力可能太多了。
  3. 其他替代方法是声明您自己的自定义异常,或者简单地使用现有的 java.lang.UnsupportedOperationException ...标准,不会添加新的依赖项,并且不会在未来的 Java 版本中删除。


1。我不确定这一点,但我认为在 Java 9 中阻止了对 sun.reflect.generics.reflectiveObjects 的访问。

关于java - sun.reflect.generics.reflectiveObjects.NotImplementedException 和 org.apache.commons.lang3.NotImplementedException 之间有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48418641/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com