【发布时间】:2018-12-05 02:52:54
【问题描述】:
我希望给开发者一些建议,例如:不推荐使用 System.currentTimeMillis(),并为一些 cmets 提供替代解决方案。
AFAIK 没有这样的声纳规则,我应该创建一个新规则还是可以选择参数化现有规则?
我发现不再支持java的xpath,所以我说编写自定义规则是唯一的方法吗?
【问题讨论】:
我希望给开发者一些建议,例如:不推荐使用 System.currentTimeMillis(),并为一些 cmets 提供替代解决方案。
AFAIK 没有这样的声纳规则,我应该创建一个新规则还是可以选择参数化现有规则?
我发现不再支持java的xpath,所以我说编写自定义规则是唯一的方法吗?
【问题讨论】:
您正在寻找模板规则S2253,它允许您标记对特定方法的调用。
【讨论】:
这是使用声纳设置自定义方法警告的example:
@Rule(key = "NoObjectWaitRule", name = "NoObjectWaitRule", description = "You should not use classic wait/notify mechanism. Instead use Java Concurrency API.", priority = Priority.MAJOR, tags = { "bad-practice" }) public class NoObjectWaitRule extends DisallowedMethodCheck { public NoObjectWaitRule() { super.setClassName("java.lang.Object"); super.setMethodName("wait"); super.setAllOverloads(true); } }
【讨论】: