4

我目前正在为一个更大的项目修复一些 BestPractice-Warnings。在一些情况下,在执行更多操作之前调用并等待表单,这主要是一些对话框。为了等待表单,经常使用以下代码:

Object formRun;

//declare args and stuf...
formRun = classfactory.formRunClass(args);
formRun.init();

//call methods on formRun (display,run,etc...)

formRun.wait();

我现在面临的问题是 'wait()' 似乎已被弃用,我不知道如何替换或修复它。我已经看到一些开发人员将表单声明为“对象”以消除此警告(顺便说一句,这不起作用,这仍然会被检测到),但这是一个后期绑定调用,也应该避免。 ..

其他人遇到过这个问题吗 ?我尝试使用命名空间调用此方法,system.reflection但这看起来不正确,而且 x++ 中的代码比这样一个简单任务所需的代码要多得多。

4

1 回答 1

6

TLDR

我认为这是最佳实践检查的误报。要摆脱最佳实践警告,您可以将它们添加到抑制的最佳实践列表中,或在代码中添加最佳实践抑制。

细节

Deprecated APIs(2017 年 6 月)中,它针对以下wait方法说Object

概述

用于阻塞和等待交互/操作并通知解除阻塞。

弃用原因

除 formRun及其派生对象外,所有对象均不推荐使用这些调用。

迁移说明

允许从 formRun 或其派生类调用这些 API。 应删除从任何其他对象对这些 API 的调用。

当您对 进行元数据搜索code:"formRun.wait()",您还会得到很多结果(在 8.0 版本上超过 1000 个)。这进一步表明该方法不被弃用FormRun

也就是说,您可能想查看以下链接,其中提到formRun.lifecycleHelper()可以添加事件处理程序。到目前为止,我还没有亲自尝试过,但它可能适用于您的情况。

FormRun.wait、Box 和 ChangeCompany - 糟糕的鸡尾酒

于 2019-03-09T14:32:19.990 回答