All Downloads are FREE. Search and download functionalities are using the official Maven repository.

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