Changelog
The version update history of
KavaRefis recorded here.
Pay Attention
We will only maintain the latest API version. If you are using an outdated API version, you voluntarily renounce any possibility of maintenance.
Notice
Time zone of version release date: UTC+8
1.1.1 | 2026.10.09 latest
kavaref-core
- ⚠️ Breaking Change: Changed
Configuration.superclassto theSuperclassenum - ⚠️ Breaking Change: Changed position-sensitive condition properties such as
exceptionTypesandgenericParameterstoList - ⚠️ Breaking Change: Changed
annotatedParameterTypesandannotatedExceptionTypesto take annotation sets by position - Added
superclass(interfaces = true)to filter members in interfaces - Added conditions such as
emptyExceptionTypes()to match empty results - Added
withHandler()to customize the invocation and read/write behavior ofMethodResolver,ConstructorResolverandFieldResolver - Changed the type parameters of
MemberResolverandInstanceAwareResolverto include the handler typeH - Aligned annotation related conditions and
WildcardTypeMatcherwith Java reflection - Changed
asResolver()to always treat the receiver as an instance, useresolve()onKClassandClass - Changed
createAsType<T>()to a non-reified function, type parameters of classes can now be passed - Unified the handling of exceptions thrown by freedom conditions and listed them in the exception message
- Fixed
superclass()affecting subsequent filters in the same scope and several incorrect condition matches - Fixed
copy()andmergeWithlosing the modifiers condition - Improved the resolution performance of string type conditions
kavaref-android
- Added Lint rule
EmptyConditionArguments - Added replacement suggestions for extensions such as
isNotSubclassOf,toClassOrNullandgenericSuperclassTypeArgumentstoReplaceWithKavaRefExtension - Fixed false positives of
ReplaceWithKavaRefExtensionon class literals andmodifiersof types other thanMemberandClass - Fixed quick fixes of
UnsupportedExecutableConditionandReplaceWithKavaRefExtensiongenerating invalid code in contexts such as chained calls
kavaref-jvm
- Removed the SLF4J dependency to avoid modifying the global logging configuration, logs are now printed to the console by default
kavaref-extension
- Changed
createInstance()to select constructors following Java overload resolution - Changed
createInstanceAsType<T>()to a non-reified function, type parameters of classes can now be passed - Added nullable type and generic array support to
TypeRef, with built-in R8/ProGuard rules - Made
LazyClassthread-safe and cache failed loads - Improved
makeAccessible()to skip members that are already accessible - Fixed
toClass()initializing classes andVariousClassfailing to load classes when noClassLoaderis passed - Fixed the
createInstance()cache preventingClassLoaderfrom being collected - Fixed modifier extensions such as
isTransientandisVolatilemisjudging varargs and bridge methods
1.1.0 | 2026.06.06 stale
kavaref-core
- Added platform base module integration while keeping the core API unchanged. Add kavaref-android or kavaref-jvm according to the target platform
- Added
MethodCondition.genericReturnType(...)andMethodCondition.defaultValue(...)conditions - Adjusted the internal implementation of
ExecutableConditionto avoid directly depending onExecutableon lower Android versions - Moved platform-specific member access, accessibility, annotation, and generic handling to platform base modules
kavaref-android
- Added Android platform base module with support for using KavaRef in environments with Min SDK 21
- Added Android Lint rules
- Added R8/ProGuard configuration and Android platform logging implementation
kavaref-jvm
- Added JVM platform base module with full JVM reflection support
- Added JVM platform logging implementation while keeping the original JVM usage experience
kavaref-extension
- Optimized constructor argument matching in
createInstance()for lower Android version compatibility - Optimized the type resolution implementation of
Type.toClass()
1.0.3 | 2026.05.28 stale
kavaref-core
- Unified the member accessibility handling of
MethodResolver,FieldResolver, andConstructorResolver - Optimized annotation handling in
MemberProcessorand improved condition mismatch messages - Fixed an issue where failed string type resolution in optional mode could incorrectly match
Any
kavaref-extension
- Adjusted the behavior of
makeAccessible(), which now returnsBooleanto indicate whether succeeded, and supports usingtrySetAccessible()to set accessibility - Optimized the constructor cache logic of
createInstance()and added constructor accessibility checks
Historical Versions
kavaref-core
1.0.2 | 2025.09.23 stale
- Remove the
org.slf4j:slf4j-simpledependency to fix conflict issues in SpringBoot projects - Remove the deprecated
T.resolve()method to avoid its scope contamination. If you still haven't migrated, please follow the documentation instructions to migrate toT.asResolver()
1.0.1 | 2025.07.06 stale
T.resolve()has been deprecated because it has namespace pollution problems. It is now recommended to migrate toT.asResolver()- Removed the residual
blockmethod in KavaRef. If this method is used, you can manually implement it withapply
1.0.0 | 2025.06.25 stale
- The first version is submitted to Maven
kavaref-extension
1.0.2 | 2025.12.13 stale
- Added
TypeReffeature, which can be used to preserve generic information at runtime
1.0.1 | 2025.07.06 stale
- Fixed an issue where the return type of
loadOrNullisClass<*>?instead ofClass<Any>?inVariousClass
1.0.0 | 2025.06.25 stale
- The first version is submitted to Maven