org.sonar.l10n.java.rules.squid.S1905.html Maven / Gradle / Ivy
The newest version!
Unnecessary casting expressions make the code harder to read and understand.
Noncompliant Code Example
public void example() {
for (Foo obj : (List<Foo>) getFoos()) { // Noncompliant; cast unnecessary because List<Foo> is what's returned
//...
}
}
public List<Foo> getFoos() {
return this.foos;
}
Compliant Solution
public void example() {
for (Foo obj : getFoos()) {
//...
}
}
public List<Foo> getFoos() {
return this.foos;
}
Exceptions
Casting may be required to distinguish the method to call in the case of overloading:
class A {}
class B extends A{}
class C {
void fun(A a){}
void fun(B b){}
void foo() {
B b = new B();
fun(b);
fun((A) b); //call the first method so cast is not redundant.
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy