2013-05-13 37 views
0

按我公司的规则,我不能使用线程限制在J2SE内置方法

stop()对于我想是这样,当我用stop(),Eclipse应该会显示错误/警告 这是难以用CheckStyle的实现和PMD。

+5

线程的stop()方法已被废弃,Eclipse已经显示了不推荐使用的方法的警告,您想要什么特定的东西? – 2013-05-13 05:35:21

回答

0

那么你不能在java。*类中使用stop()或其他方法。您可以使用代码扫描程序搜索在线程实例上调用的stop()。

你可以扩展线程,然后使用它(在你的类停止方法无能为力或抛出和异常),但你必须强制每个使用新类。

但他们为什么要你这么做?如果您使用多线程使用池(并且只创建Runnable类)或者您必须使用线程,则可以使用其他方法来停止对它们的处理(如处理期间的标志和检查标志,以及使用setter来设置falg其他线程)

+0

我正在从事Checkstyle和PMD的研发工作,但无法实现:( – 2013-05-13 10:27:02

1

您可能不得不考虑使用FindBugs而不是Checkstyle或PMD,因为您需要知道变量的运行时类型以查看它是否为Thread的实例。

AFAIK,这些工具都没有为您的Thread.stop()规则内置检测器/检查,因此您必须使用write a custom Findbugs detector

实现此目的的一种简单方法(但不适用于企业开发环境)将仅使用Checkstyle和正则表达式检查Thread.currentThread().stop()等的出现情况。如果您想为此提供示例,请在评论中告诉我。

+0

PMD具有“类型解析”规则,可以检查运行时类型,而不是内置规则。 – 2013-05-15 02:27:18