https://github.com/quantummaid/reflectmaid
A utility project for other QuantumMaid projects that handles reflections.
https://github.com/quantummaid/reflectmaid
Last synced: 4 months ago
JSON representation
A utility project for other QuantumMaid projects that handles reflections.
- Host: GitHub
- URL: https://github.com/quantummaid/reflectmaid
- Owner: quantummaid
- License: apache-2.0
- Created: 2020-03-27T12:24:18.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2022-06-20T22:47:35.000Z (almost 4 years ago)
- Last Synced: 2025-10-23T14:50:46.211Z (8 months ago)
- Language: Kotlin
- Homepage: https://quantummaid.de
- Size: 387 KB
- Stars: 4
- Watchers: 1
- Forks: 0
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
[](https://sonarcloud.io/dashboard?id=de.quantummaid.reflectmaid%3Areflectmaid-parent)
[](https://sonarcloud.io/dashboard?id=de.quantummaid.reflectmaid%3Areflectmaid-parent)
[](https://sonarcloud.io/dashboard?id=de.quantummaid.reflectmaid%3Areflectmaid-parent)
[](https://sonarcloud.io/dashboard?id=de.quantummaid.reflectmaid%3Areflectmaid-parent)
[](https://sonarcloud.io/dashboard?id=de.quantummaid.reflectmaid%3Areflectmaid-parent)
[](https://sonarcloud.io/dashboard?id=de.quantummaid.reflectmaid%3Areflectmaid-parent)
[](https://sonarcloud.io/dashboard?id=de.quantummaid.reflectmaid%3Areflectmaid-parent)
[](https://sonarcloud.io/dashboard?id=de.quantummaid.reflectmaid%3Areflectmaid-parent)
[](https://github.com/quantummaid/reflectmaid)
[](https://maven-badges.herokuapp.com/maven-central/de.quantummaid.reflectmaid/reflectmaid-parent)
[](https://github.com/quantummaid/reflectmaid)
[](https://opensource.org/licenses/Apache-2.0)
[](https://quantummaid.de/community.html)
[](https://gitter.im/quantum-maid-framework/community)
[](https://twitter.com/quantummaid)

# ReflectMaid
A utility project for other [QuantumMaid](https://quantummaid.de/) projects that handles reflections.
## GenericType
A lot of configuration methods throughout the QuantumMaid framework and its sub-probjects (HttpMaid, MapMaid, etc.)
require the user to provide a `java.lang.Class` class. E.g., HttpMaid requires usecases to be configured
by providing the `java.lang.Class` object of the use case class.
Due to limitations of the Java Virtual Machine, `java.lang.Class` objects do not sufficiently
support generic types (see [Type Erasure](https://docs.oracle.com/javase/tutorial/java/generics/erasure.html)).
To work around the aforementioned limitation, QuantumMaid offers the `GenericClass` type.
Whenever a configuration method takes a parameter of type `java.lang.Class`, there will be an overloaded variant
of that configuration method that accepts a `GenericType` parameter instead of the `java.lang.Class` parameter.
## Synthetic methods, constructors and fields
[Synthetic methods, constructors and fields](https://www.baeldung.com/java-synthetic) are ignored by ReflectMaid.
This is recommended [to support tools like JaCoCo](https://www.jacoco.org/jacoco/trunk/doc/faq.html).