Java


JAVA.FUNCS.RED.STR : Redundant Call for String Argument (Java)

Summary

A method call seems useless.

This checker finds calls that are useless and can consequently be removed from the code. This means that the code becomes simpler and more efficient, but might also be the sign of a programming bug.

Properties

Class Name Redundant Call for String Argument (Java)
Significance reliability
Mnemonic JAVA.FUNCS.RED.STR
Categories
CWE CWE:1164 Irrelevant Code
Availability Available for Java only.
Enabling Checks for this warning class are enabled by default. To disable them, add the following WARNING_FILTER rule to the project configuration file.
WARNING_FILTER += discard class="Redundant Call for String Argument (Java)"

Example

import java.util.Date;

public class Student {
  private final String name;
  private final String surname;
  private final Date birthDay;

  public Student(String name, String surname) {
      this.name = name;
      this.surname = surname;
      this.birthDay = new Date();
  }

  public static void main(String[] args) {
      Student s = new Student("John", "Lennon");
      print(s.toString());                                    // can remove this call to toString() to eliminate the warning in print()
  }

  private static void print(Object s) {
      System.out.println(s.toString());           /* "Redundant Call for String Argument (Java)" warning issued here 
                                                   * - s always holds a String at runtime. 
                                                   */ 
  }

  public String toString() {
      return "I'm " + name.toString() + surname.toString() + "." /* "Redundant Call for String Argument (Java)" warning issued here 
                                                   * - name and surname are already Strings. 
                                                   */ 
        + " My birthday is on " + birthDay.toString();
  }
}

Resolution

Check if the call is useless and delete it.

Relevant Configuration File Parameters

The following configuration file parameters affect checks for this warning class.