EclipseLinkJPAを使用して次のクラスがあります。
package my.package;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.SequenceGenerator;
import javax.persistence.Version;
import my.package.api.Address;
@Entity(name = "Address")
@SequenceGenerator(name = "sequence", sequenceName = "seq_address")
public class AddressJpaEntity implements Address {
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "sequence")
private Long id;
@Version
private Long version;
private String street;
public AddressJpaEntity() {
}
public AddressJpaEntity(String street) {
this.street = street;
}
@Override
public Long getId() {
return id;
}
public Long getVersion() {
return version;
}
public void setVersion(Long version) {
this.version = version;
}
@Override
public String getStreet() {
return street;
}
@Override
public void setStreet(String street) {
this.street = street;
}
}
SonarQubeを実行すると、次の(誤った)エラーが多数発生します。
悪い習慣-==または!=を使用した文字列パラメータの比較
このコードは、==または!=演算子を使用して、参照が等しいかどうかjava.lang.Stringパラメーターを比較します。呼び出し元に文字列定数またはインターン文字列のみをメソッドに渡すように要求することは、不必要に脆弱であり、測定可能なパフォーマンスの向上につながることはめったにありません。代わりにequals(Object)メソッドの使用を検討してください。
findbugs | ES_COMPARING_PARAMETER_STRING_WITH_EQ my.package.AddressJpaEntity._persistence_set(String、Object)で==または!=を使用した文字列パラメーターの比較
今のところ、問題を誤検知として設定することで解決しましたが、将来的には同様のクラスを追加する予定であり、毎回これを実行したくありません。
常に「Falsepositive」を使用せずに、Sonarがこれらのエラーをマークしないようにするにはどうすればよいですか?
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加