Class KotlinReflectionUtils

java.lang.Object
org.springframework.data.util.KotlinReflectionUtils

public final class KotlinReflectionUtils extends Object
Reflection utility methods specific to Kotlin reflection. Requires Kotlin classes to be present to avoid linkage errors - ensure to guard usage with KotlinDetector.isKotlinPresent().
Since:
2.3
Author:
Mark Paluch, Christoph Strobl, Johannes Englmeier
See Also:
  • Method Details

    • isSupportedKotlinClass

      public static boolean isSupportedKotlinClass(Class<?> type)
      Return true if the specified class is a supported Kotlin class. Currently supported are only regular Kotlin classes. Other class types (synthetic, SAM, lambdas) are not supported via reflection.
      Returns:
      true if type is a supported Kotlin class.
    • isDataClass

      public static boolean isDataClass(Class<?> type)
      Return true if the specified class is a Kotlin data class.
      Returns:
      true if type is a Kotlin data class.
      Since:
      2.5.1
    • findKotlinFunction

      @Nullable public static kotlin.reflect.KFunction<?> findKotlinFunction(Method method)
      Returns a KFunction instance corresponding to the given Java Method instance, or null if this method cannot be represented by a Kotlin function.
      Parameters:
      method - the method to look up.
      Returns:
      the KFunction or null if the method cannot be looked up.
    • isSuspend

      public static boolean isSuspend(Method method)
      Returns whether the Method is declared as suspend (Kotlin Coroutine).
      Parameters:
      method - the method to inspect.
      Returns:
      true if the method is declared as suspend.
      See Also:
      • KFunction.isSuspend()
    • getReturnType

      public static Class<?> getReturnType(Method method)
      Returns the return type of a Kotlin Method. Supports regular and suspended methods.
      Parameters:
      method - the method to inspect, typically any synthetic JVM Method.
      Returns:
      return type of the method.
    • isValueClass

      public static boolean isValueClass(kotlin.reflect.KType type)
      Returns whether the given KType is a value class.
      Parameters:
      type - the kotlin type to inspect.
      Returns:
      true the type is a value class.
      Since:
      3.2
    • hasValueClassProperty

      public static boolean hasValueClassProperty(Class<?> type)
      Returns whether the given class makes uses Kotlin value classes.
      Parameters:
      type - the kotlin type to inspect.
      Returns:
      true when at least one property uses Kotlin value classes.
      Since:
      3.2