---
title: PMD – Apex Class Rules
description: "The following table shows the list of PMD Apex Class rules that are checked by Quality Clouds. Make sure to check also the [Apex Class rules](https://qualityclouds.com/documentation/qc/configuration-elements/apex-class-rules/). | Description | Severity | Area of impact | | --- | --- | ---…"
url: "https://community-staging.qualityclouds.com/qcdocs/qcr/rules/pmd-apex-class-rules/"
updated: "2025-03-21"
category: PMD Rules
---

# PMD – Apex Class Rules

The following table shows the list of PMD Apex Class rules that are checked by Quality Clouds.

Make sure to check also the [Apex Class rules](https://qualityclouds.com/documentation/qc/configuration-elements/apex-class-rules/).

| Description | Severity | Area of impact |
| --- | --- | --- |
| [Apex unit tests should include at least one assertion](https://qualityclouds.com/documentation/qc/pmd-rules/apex-unit-tests-should-include-at-least-one-assertion/) | High | Manageability |
| [Apex unit tests should not use @isTest(seeAllData=true)](https://qualityclouds.com/documentation/qc/pmd-rules/apex-unit-tests-should-not-use-istestseealldatatrue/) | Medium | Manageability |
| [Avoid using if statements without using braces to surround the code block](https://qualityclouds.com/documentation/qc/pmd-rules/avoid-using-if-statements-without-using-braces-to-surround-the-code-block/) | Medium | Manageability |
| [Avoid using “while” statements without using braces to surround the code block](https://qualityclouds.com/documentation/qc/pmd-rules/avoid-using-while-statements-without-using-braces-to-surround-the-code-block/) | Medium | Manageability |
| [Avoid using if..else statements without using surrounding braces](https://qualityclouds.com/documentation/qc/pmd-rules/avoid-using-if-else-statements-without-using-curly-braces/) | Medium | Manageability |
| [Avoid using “for” statements without using surrounding braces](https://qualityclouds.com/documentation/qc/pmd-rules/avoid-using-if-else-statements-without-using-surrounding-braces/) | Medium | Manageability |
| [Avoid creating deeply nested if-then statements](https://qualityclouds.com/documentation/qc/pmd-rules/avoid-creating-deeply-nested-if-then-statements/) | Medium | Manageability |
| [Methods with numerous parameters should not be used](https://qualityclouds.com/documentation/qc/pmd-rules/methods-with-numerous-parameters-should-not-be-used/) | Medium | Manageability |
| [Avoid excessive class file lengths](https://qualityclouds.com/documentation/qc/pmd-rules/avoid-excessive-class-file-lengths/) | Medium | Manageability |
| [Avoid methods with excessive Lines of Code count](https://qualityclouds.com/documentation/qc/pmd-rules/avoid-methods-with-excessive-lines-of-code-count/) | Medium | Manageability |
| [Avoid types with excessive Lines of Code count](https://qualityclouds.com/documentation/qc/pmd-rules/avoid-types-with-excessive-lines-of-code-count/) | Medium | Manageability |
| [Avoid constructors with excessive Lines of Code count](https://qualityclouds.com/documentation/qc/pmd-rules/avoid-constructors-with-excessive-lines-of-code-count/) | Medium | Manageability |
| [Avoid excessive cyclomatic complexity](https://qualityclouds.com/documentation/qc/pmd-rules/avoid-excessive-cyclomatic-complexity/) | Medium | Manageability |
| [Avoid classes with too many fields](https://qualityclouds.com/documentation/qc/pmd-rules/avoid-classes-with-too-many-fields/) | Medium | Scalability |
| [Avoid classes with too many public methods](https://qualityclouds.com/documentation/qc/pmd-rules/avoid-classes-with-too-many-public-methods/) | Medium | Manageability |
| [Avoid SOQL inside loops](https://qualityclouds.com/documentation/qc/pmd-rules/avoid-soql-inside-loops/) | High | Performance |
| [Avoid DML statements inside loops](https://qualityclouds.com/documentation/qc/pmd-rules/avoid-dml-statements-inside-loops/) | High | Performance |
| [Classes should explicitly declare a sharing mode if DML methods are used](https://qualityclouds.com/documentation/qc/pmd-rules/classes-should-explicitly-declare-a-sharing-mode-if-dml-methods-are-used/) | High | Security |
| [Redirects to user-controlled locations should be avoided](https://qualityclouds.com/documentation/qc/pmd-rules/redirects-to-user-controlled-locations-should-be-avoided/) | High | Security |
| [Accessing endpoints over unencrypted http should be avoided](https://qualityclouds.com/documentation/qc/pmd-rules/accessing-endpoints-over-unencrypted-http-should-be-avoided/) | High | Security |
| [Calls to addError with disabled escaping should be avoided](https://qualityclouds.com/documentation/qc/pmd-rules/calls-to-adderror-with-disabled-escaping-should-be-avoided/) | High | Security |
| [Randomly generated IVs and keys should be used for Crypto calls](https://qualityclouds.com/documentation/qc/pmd-rules/randomly-generated-ivs-and-keys-should-be-used-for-crypto-calls/) | High | Security |
| [Avoid using DML operations in Apex class constructor/init method](https://qualityclouds.com/documentation/qc/pmd-rules/avoid-using-dml-operations-in-apex-class-constructor-init-method/) | High | Security |
| [Avoid using untrusted / unescaped variables in DML queries](https://qualityclouds.com/documentation/qc/pmd-rules/avoid-using-untrusted-unescaped-variables-in-dml-queries/) | High | Security |
| [Avoid System.debug and Configuration.disableTriggerCRUDSecurity()](https://qualityclouds.com/documentation/qc/pmd-rules/avoid-system-debug-and-configuration-disabletriggercrudsecurity/) | High | Security |
| [Avoid hardcoded credentials used in requests to an endpoint](https://qualityclouds.com/documentation/qc/pmd-rules/avoid-hardcoded-credentials-used-in-requests-to-an-endpoint/) | High | Security |
| [Variable names should start with a Lowercase character](https://qualityclouds.com/documentation/qc/pmd-rules/variable-names-should-start-with-a-lowercase-character/) | Medium | Manageability |
| [Method names should always begin with a Lower case character, and should not contain underscores](https://qualityclouds.com/documentation/qc/pmd-rules/method-names-should-always-begin-with-a-lower-case-character-and-should-not-contain-underscores/) | Medium | Manageability |
| [Class names should always begin with an upper case character](https://qualityclouds.com/documentation/qc/pmd-rules/class-names-should-always-begin-with-an-upper-case-character/) | Medium | Manageability |
| [Non-constructor methods should not have the same name as the enclosing class](https://qualityclouds.com/documentation/qc/pmd-rules/non-constructor-methods-should-not-have-the-same-name-as-the-enclosing-class/) | Medium | Manageability |
| [The Global modifier should be avoided](https://qualityclouds.com/documentation/qc/pmd-rules/the-global-modifier-should-be-avoided/) | Medium | Manageability |
| [Access permissions should be checked before a SOQL/SOSL/DML operation](https://qualityclouds.com/documentation/qc/pmd-rules/access-permissions-should-be-checked-before-a-soql-sosl-dml-operation/) | Medium | Manageability |
| [Avoid hardcoding IDs](https://qualityclouds.com/documentation/qc/pmd-rules/avoid-hardcoding-ids/) | Medium | Manageability |
| [Avoid empty block statements](https://qualityclouds.com/documentation/qc/pmd-rules/avoid-empty-block-statements/) | Medium | Manageability |
| [Final variables should be fully capitalized and non-final variables should not include underscores](https://qualityclouds.com/documentation/qc/pmd-rules/final-variables-should-be-fully-capitalized-and-non-final-variables-should-not-include-underscores/) | Medium | Manageability |
| [Avoid empty Catch Block](https://qualityclouds.com/documentation/qc/pmd-rules/avoid-empty-catch-block/) | Medium | Manageability |
| [Avoid Empty If Statements](https://qualityclouds.com/documentation/qc/pmd-rules/avoid-empty-if-statements/) | Medium | Manageability |
| [Avoid empty try or finally blocks](https://qualityclouds.com/documentation/qc/pmd-rules/avoid-empty-try-or-finally-blocks/) | Medium | Manageability |
| [Avoid Sosl calls within loops](https://qualityclouds.com/documentation/qc/pmd-rules/avoid-sosl-calls-within-loops/) | Medium | Manageability |
| [Avoid empty while statements](https://qualityclouds.com/documentation/qc/pmd-rules/avoid-empty-while-statements/) | Medium | Manageability |
| [Avoid excessive standard cyclomatic complexity](https://qualityclouds.com/documentation/qc/pmd-rules/avoid-excessive-standard-cyclomatic-complexity/) | Medium | Manageability |
| [Avoid processing unescaped URL parameters](https://qualityclouds.com/documentation/qc/pmd-rules/avoid-processing-unescaped-url-parameters/) | Medium | Manageability |
| [Missing ApexDoc comment](https://qualityclouds.com/documentation/qc/pmd-rules/missing-apexdoc-comment/) | Medium | Manageability |
| [Missing ApexDoc @description](https://qualityclouds.com/documentation/qc/pmd-rules/missing-apexdoc-description/) | Medium | Manageability |
| [Avoid declaring multiple variables in a single line](https://qualityclouds.com/documentation/qc/pmd-rules/avoid-declaring-multiple-variables-in-a-single-line/) | Low | Manageability |

PMD Copyright

This product includes software developed in part by support from the Defense Advanced Research Project Agency (DARPA).
