gpt4 book ai didi

java - 如何解决以下 PMD 违规问题

转载 作者:太空狗 更新时间:2023-10-29 22:48:53 24 4
gpt4 key购买 nike

我正在使用 PMD 分析代码,它会产生一些我不知道如何修复的高优先级警告。

1) 避免 if(x!=y)..; else...; 但是需要这个逻辑怎么办呢?也就是说,我确实需要检查是否 x!=y?我该如何重构它?

2) 使用显式作用域而不是默认的包私有(private)级别。 但是该类确实只在包内使用。我应该使用什么访问修饰符?

3) 参数没有赋值,可以声明为final。我是否应该在PMD 指出的所有地方添加final 关键字?

最佳答案

避免否定:代替 if( x!=y ) doThis() else doThat(),首先检查正例,因为人/人类倾向于喜欢积极的东西胜过消极的东西。读源码的时候脑子里要颠倒逻辑,真是绞尽脑汁。因此,改为:

 if ( x!=y ) doThis() else doThat()       // Bad - negation first
if ( x==y ) doThat() else doThis() // Good - positive first

明确范围界定:根据PMD website ,这是一个有争议的规则。你可能讨厌它,别人喜欢它。您应该做的是将类中的所有字段设为私有(private)。似乎有一个具有包可见性的字段或方法(不是类),例如像这样:

 class Foo {
/* private missing */ Object bar;
}

最终参数:方法参数应该是最终的,以避免意外重新分配。这只是一个很好的做法。如果您使用的是 Eclipse,内容帮助甚至会提供名为 “尽可能将修饰符更改为最终修饰符” 的快速修复。只需使用 Ctrl-a 选择编辑器中的所有代码,然后按 Ctrl-1。

关于java - 如何解决以下 PMD 违规问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4599446/

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