ConversionComparator (Java SE 22 & JDK 22)
Description: declaration: module: jdk.dynalink, package: jdk.dynalink.linker, interface: ConversionComparator
Keywords: jdk.dynalink.linker.ConversionComparator interface

Module jdk.dynalink
Package jdk.dynalink.linker

# Interface ConversionComparator

public interface ConversionComparator
Optional interface to be implemented by `GuardingTypeConverterFactory` implementers. Language-specific conversions can cause increased overloaded method resolution ambiguity, as many methods can become applicable because of additional conversions. The static way of selecting the "most specific" method will fail more often, because there will be multiple maximally specific method with unrelated signatures. In these cases, language runtimes can be asked to resolve the ambiguity by expressing preferences for one conversion over the other.

Since:
  9

- ## Nested Class Summary

  Nested Classes
  Modifier and Type
  Interface
  Description
  `static enum`
  `ConversionComparator.Comparison`
  Enumeration of possible outcomes of comparing one conversion to another.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `ConversionComparator.Comparison`
  `compareConversion(Class<?> sourceType, Class<?> targetType1, Class<?> targetType2)`
  Determines which of the two target types is the preferred conversion target from a source type.

- ## Method Details

  - ### compareConversion

    ConversionComparator.Comparison compareConversion(Class<?> sourceType, Class<?> targetType1, Class<?> targetType2)
    Determines which of the two target types is the preferred conversion target from a source type.
    Parameters:
      `sourceType` - the source type.
      `targetType1` - one potential target type
      `targetType2` - another potential target type.
    Returns:
      one of Comparison constants that establish which - if any - of the target types is preferred for the conversion.