2013-03-08 90 views
1

我想让我的团队成员知道不应该使用String.replace()(因为我们的许多开发人员都不知道正则表达式参数)并建议他们使用StringUtils。替换()。Java运行时的标记方法已过时

我可以告诉他们,通过把重点放在在代码审查,通过编写FindBugs的,的CheckStyle或其他工具自定义规则这样做,但我宁愿喜欢在代码记录本,使编译意识到我的意图。

如果String是我自己代码中的类,那么我只需添加弃用注释。有没有办法为课程添加弃用注释,我没有的源代码?

(不,我不希望编译JDK自己作为一个解决办法:)

+0

String.replace()不采用正则表达式,是吗?你在想String.replaceAll()吗? – 2013-03-08 10:22:06

+0

如果Checkstyle将此标记为错误,您还想要寻找什么? – 2013-03-08 10:25:05

回答

2

简短的回答是

有可行的替代方案,如启用或添加规则到/你的组风格/错误检查工具(FindBugs,PMD,CheckStyle等)。


但是我认为你在这里采取了错误的做法。如果我是您的开发人员之一,我会因为暗示我“太stooopid”正确使用String.replace()String.replaceAll()而感到生气。

如果你确实对开发人员不了解有问题,那么你需要对他们进行更多的培训,或者(如果他们真的很愚蠢......)替换他们。

如果真正的问题是您的代码库中存在错误的使用情况,那么您需要做的是代码审计;例如grep该方法名称的所有出现的代码库,并检查它们。

+0

+1开发者进攻 – 2013-03-08 10:57:05

+0

当然你可能会感到冒犯了你想要的。然而,这不是一个单一的英雄开发者,而是一个分布式团队。无论作者_是否了解他/她的代码,在大型分布式团队中,每个人都必须理解_everyones_代码。因此应避免所有含糊之处。我当然更喜欢教育,但我总是看到新的队友,所以我必须对代码(和工具)有严格的规定。顺便说一句:我的队友通常对这些措施非常满意,因为我帮他们避免了错误。他们不觉得“限制他们的创造力”...... – Bananeweizen 2013-03-08 13:18:35

+0

无论如何。底线是答案仍然没有。 – 2013-03-08 13:27:44

1

这是由IDE验证编译时间效用,所以没有另一种方式来对方法添加弃用,您必须更改JDK的源代码并编译它们。

或许,如果你正在使用的构建工具检查是否有任何插件,你可以告诉失败如果建立特定的方法被称为