gpt4 book ai didi

java - 我可以使用运行时参数来修复 Java 中的错误 API 调用吗?

转载 作者:搜寻专家 更新时间:2023-10-31 19:29:20 25 4
gpt4 key购买 nike

不确定这里是否适合提问,但我遇到了 Java 问题。我有一些 Java 代码可以在 Java 6 中运行但不能在 Java 7 中运行,错误是:

java.lang.IllegalStateException: This function should be called while holding treeLock

使用 Java6 可行,但我们的一些外部用户正在运行 Java 7。我发现错误是由调用 validateTree() 引起的,它在 java6 中有效,但在 Java7 中我们需要调用 validate() 。当我在本地测试它时,它有效。

这是我的问题,我开始在一家大公司工作,他们不会让我们对代码进行任何更改,直到它被彻底审查(我的工作更改将在 2013 年 4 月生效)但在那之前我们的用户越来越恼火。我不是最擅长 Java 的人,想知道是否有一种方法可以传递运行时参数来改变它?或者我可以在不接触代码库的情况下做些什么?

我很不好意思问这个问题,因为它可以通过实现修复轻松解决,但任何想法或方向都会非常有帮助。

更新:理想情况下,我正在寻找可以支持将所有 validateTree() 引用更改为 validate() 的 java 运行时参数的东西。

最佳答案

Can I use runtime parameters to fix out of bad API calls in Java?

一般来说,不会。

具体情况可以查看类库Java 7版本相关类的源码,看看是否具有向后兼容的特性。


假设您找不到修复程序,那么您就有点卡住了。我建议:

  • 向您的客户推荐他们使用 Java 6,直到发布修复程序。
  • 与您的管理层讨论他们是否可以对他们的政策进行异常(exception)处理以紧急解决此问题。

如果这些都不起作用,那么真正的问题出在您的客户和您的管理层之间。你已经尽力了。交给“上级”处理。


您可能对 my Answer to a related SO Question 感兴趣这涉及到为什么他们做出这个“重大”改变的问题。我的看法是,这种变化是为了迫使人们修复一类隐蔽的、难以重现的应用程序错误,这些错误会导致奇怪的 UI 行为。这是一件好事……从长远来看。

基于此,您可以更有力地发布带外修复程序。将 validateTree() 调用替换为 validate() 调用的修复实际上是所有 Java 平台的必要修复,而不仅仅是 Java 7。

关于java - 我可以使用运行时参数来修复 Java 中的错误 API 调用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12821047/

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