# org.mockito.exceptions.base.MockitoException: Cannot mock/spy class com.example.FinalClass because Mockito cannot mock final classes

- **ID:** `java/mockito-spy-on-final-class`
- **Domain:** java
- **Category:** type_error
- **Verification:** ai_generated
- **Fix Rate:** 80%

## Root Cause

Mockito cannot mock or spy on final classes by default (requires mockito-inline or Mockito 5+).

## Version Compatibility

| Version | Status | Introduced | Deprecated |
|---------|--------|------------|------------|
| 8+ | active | — | — |

## Workarounds

1. **Use Mockito 5+ which supports mocking final classes by default** (90% success)
   ```
   // Upgrade to Mockito 5.x in build.gradle
// testImplementation 'org.mockito:mockito-core:5.0.0'
   ```
2. **Add mockito-inline dependency** (85% success)
   ```
   // Add to build.gradle
// testImplementation 'org.mockito:mockito-inline:5.2.0'
   ```

## Dead Ends

- **Removing final keyword from production code** — Changes production code design; may not be allowed. (50% fail)
- **Using PowerMockito** — Adds heavy dependency and may cause compatibility issues. (40% fail)
