Uploaded image for project: 'Rules Repository'
  1. Rules Repository
  2. RSPEC-3025

Classes should be usable

    XMLWordPrintable

    Details

    • Type: Bug Detection
    • Status: Active
    • Resolution: Unresolved
    • Labels:
    • Message:
      Either add a public constructor or make the methods of this class "static".
    • Default Severity:
      Minor
    • Impact:
      Low
    • Likelihood:
      Low
    • Default Quality Profiles:
      Sonar way
    • Targeted languages:
      Java
    • Remediation Function:
      Constant/Issue
    • Constant Cost:
      30min
    • PMD:
      MissingStaticMethodInNonInstantiatableClass

      Description

      Classes without public static members cannot be used without being instantiated, but classes with only private constructors cannot be instantiated. When a class has only private constructors and no static members, it is useless and should be removed or refactored.

      Noncompliant Code Example

      public class MyClass {  // Noncompliant
      
        private MyClass () {
        }
      
        public double getPi(){
          return 3.14;
        }
      }
      

      Compliant Solution

      public class MyClass {  
      
        public MyClass () {
        }
      
        public double getPi(){
          return 3.14;
        }
      }
      

      or

      public class MyClass {  
      
        private MyClass () {
        }
      
        public static double getPi(){
          return 3.14;
        }
      }
      

        Attachments

          Issue Links

            Activity

              People

              Assignee:
              Unassigned Unassigned
              Reporter:
              ann.campbell.2 Ann Campbell
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

                Dates

                Created:
                Updated: