SonarSource Rules
  • Products

    In-IDE

    Code Quality and Security in your IDE with SonarQube Ide

    IDE extension that lets you fix coding issues before they exist!

    Discover SonarQube for IDE

    SaaS

    Code Quality and Security in the cloud with SonarQube Cloud

    Setup is effortless and analysis is automatic for most languages

    Discover SonarQube Cloud

    Self-Hosted

    Code Quality and Security Self-Hosted with SonarQube Server

    Fast, accurate analysis; enterprise scalability

    Discover SonarQube Server
  • SecretsSecrets
  • ABAPABAP
  • AnsibleAnsible
  • ApexApex
  • AzureResourceManagerAzureResourceManager
  • CC
  • C#C#
  • C++C++
  • CloudFormationCloudFormation
  • COBOLCOBOL
  • CSSCSS
  • DartDart
  • DockerDocker
  • FlexFlex
  • GitHub ActionsGitHub Actions
  • GoGo
  • HTMLHTML
  • JavaJava
  • JavaScriptJavaScript
  • JSONJSON
  • JCLJCL
  • KotlinKotlin
  • KubernetesKubernetes
  • Objective CObjective C
  • PHPPHP
  • PL/IPL/I
  • PL/SQLPL/SQL
  • PythonPython
  • RPGRPG
  • RubyRuby
  • RustRust
  • ScalaScala
  • ShellShell
  • SwiftSwift
  • TerraformTerraform
  • TextText
  • TypeScriptTypeScript
  • T-SQLT-SQL
  • VB.NETVB.NET
  • VB6VB6
  • XMLXML
  • YAMLYAML
Java

Java static code analysis

Unique rules to find Bugs, Vulnerabilities, Security Hotspots, and Code Smells in your JAVA code

  • All rules 733
  • Vulnerability60
  • Bug175
  • Security Hotspot40
  • Code Smell458

  • Quick Fix 65
Filtered: 13 rules found
architecture
    Impact
      Clean code attribute
        1. Circular dependencies between classes across packages should be resolved

           Code Smell
        2. Circular dependencies between classes in the same package should be resolved

           Code Smell
        3. The Singleton design pattern should be used with care

           Code Smell
        4. Methods should not perform too many tasks (aka Brain method)

           Code Smell
        5. Classes should not depend on an excessive number of classes (aka Monster Class)

           Code Smell
        6. Cognitive Complexity of methods should not be too high

           Code Smell
        7. Inner classes should not have too many lines of code

           Code Smell
        8. Methods should not be too complex

           Code Smell
        9. Classes should not have too many methods

           Code Smell
        10. Methods should not have too many lines

           Code Smell
        11. Classes should not be coupled to too many other classes

           Code Smell
        12. Inheritance tree of classes should not be too deep

           Code Smell
        13. Files should not have too many lines of code

           Code Smell

        Classes should not depend on an excessive number of classes (aka Monster Class)

        adaptability - modular
        maintainability
        Code Smell
        • architecture
        • design

        "Monster Class" is a class that implements too many functionalities that are not well organized, or cohesive. Monster Classes are not created intentionally, but rather they often arise over time as a result of poor software design or a lack of attention to good programming practices such as modularization and encapsulation. As a software evolves and new requirements are added, it can be tempting to add new functionality to existing classes rather than creating new classes to handle the new functionality. This leads to classes becoming bloated and difficult to understand and maintain, ultimately resulting in a Monster Class.

        Here are the characteristics of a Monster Class:

        • High number of instance variables and methods
        • Variables and methods that are not related to each other (low cohesion and high coupling)
        • Too many responsibilities, violating the Single Responsibility Principle (aka SRP)
        • Difficult to test, leading to poor test coverage and a higher risk of defects

        Why is this an issue?

        How can I fix it?

        More Info

        Monster Classes become monolithic entities, with numerous responsibilities and functionalities packed into a single class. This is problematic because it violates the Single Responsibility Principle, which states that a class should have only one reason to change.

        When a class has too many responsibilities and functionalities, it becomes difficult to maintain. Changes to one part of the class can unintentionally affect other parts, leading to bugs. Additionally, it can be difficult to test the class, as there may be many different interactions between different parts of the class that need to be considered.

          Available In:
        • SonarQube IdeCatch issues on the fly,
          in your IDE
        • SonarQube CloudDetect issues in your GitHub, Azure DevOps Services, Bitbucket Cloud, GitLab repositories
        • SonarQube Community BuildAnalyze code in your
          on-premise CI
          Available Since
          10.1
        • SonarQube ServerAnalyze code in your
          on-premise CI
          Developer Edition
          Available Since
          10.1

        © 2008-2025 SonarSource SA. All rights reserved.

        Privacy Policy | Cookie Policy | Terms of Use