Spring Framework
org.springframework.context.annotation.ClassPathScanningCandidateComponentProvider can be used to find all subclass of a super class or an interface. Note: This doesn't work for Java core internal classes.
package com.logicbig.example;import org.springframework.beans.factory.config.BeanDefinition;import org.springframework.context.annotation.ClassPathScanningCandidateComponentProvider;import org.springframework.core.convert.converter.Converter;import org.springframework.core.type.filter.AssignableTypeFilter;import java.util.Set;public class SpringBuiltInConvertersFinder { public static void main(String[] args) { ClassPathScanningCandidateComponentProvider provider = new ClassPathScanningCandidateComponentProvider(false); provider.addIncludeFilter(new AssignableTypeFilter(Converter.class)); Set<BeanDefinition> components = provider.findCandidateComponents("org/springframework"); components.stream() .map(BeanDefinition::getBeanClassName) .forEach(System.out::println); }}
org.springframework.format.datetime.DateFormatterRegistrar$CalendarToDateConverterorg.springframework.format.datetime.DateFormatterRegistrar$CalendarToLongConverterorg.springframework.format.datetime.DateFormatterRegistrar$DateToCalendarConverterorg.springframework.format.datetime.DateFormatterRegistrar$DateToLongConverterorg.springframework.format.datetime.DateFormatterRegistrar$LongToCalendarConverterorg.springframework.format.datetime.DateFormatterRegistrar$LongToDateConverterorg.springframework.format.datetime.standard.DateTimeConverters$CalendarToInstantConverterorg.springframework.format.datetime.standard.DateTimeConverters$CalendarToLocalDateConverterorg.springframework.format.datetime.standard.DateTimeConverters$CalendarToLocalDateTimeConverterorg.springframework.format.datetime.standard.DateTimeConverters$CalendarToLocalTimeConverterorg.springframework.format.datetime.standard.DateTimeConverters$CalendarToOffsetDateTimeConverterorg.springframework.format.datetime.standard.DateTimeConverters$CalendarToZonedDateTimeConverterorg.springframework.format.datetime.standard.DateTimeConverters$InstantToLongConverterorg.springframework.format.datetime.standard.DateTimeConverters$LocalDateTimeToLocalDateConverterorg.springframework.format.datetime.standard.DateTimeConverters$LocalDateTimeToLocalTimeConverterorg.springframework.format.datetime.standard.DateTimeConverters$LongToInstantConverterorg.springframework.format.datetime.standard.DateTimeConverters$OffsetDateTimeToInstantConverterorg.springframework.format.datetime.standard.DateTimeConverters$OffsetDateTimeToLocalDateConverterorg.springframework.format.datetime.standard.DateTimeConverters$OffsetDateTimeToLocalDateTimeConverterorg.springframework.format.datetime.standard.DateTimeConverters$OffsetDateTimeToLocalTimeConverterorg.springframework.format.datetime.standard.DateTimeConverters$OffsetDateTimeToZonedDateTimeConverterorg.springframework.format.datetime.standard.DateTimeConverters$ZonedDateTimeToInstantConverterorg.springframework.format.datetime.standard.DateTimeConverters$ZonedDateTimeToLocalDateConverterorg.springframework.format.datetime.standard.DateTimeConverters$ZonedDateTimeToLocalDateTimeConverterorg.springframework.format.datetime.standard.DateTimeConverters$ZonedDateTimeToLocalTimeConverterorg.springframework.format.datetime.standard.DateTimeConverters$ZonedDateTimeToOffsetDateTimeConverterorg.springframework.core.convert.converter.ConvertingComparator$ConversionServiceConverterorg.springframework.core.convert.support.CharacterToNumberFactory$CharacterToNumberorg.springframework.core.convert.support.DateToInstantConverterorg.springframework.core.convert.support.EnumToIntegerConverterorg.springframework.core.convert.support.EnumToStringConverterorg.springframework.core.convert.support.InstantToDateConverterorg.springframework.core.convert.support.IntegerToEnumConverterFactory$IntegerToEnumorg.springframework.core.convert.support.NumberToCharacterConverterorg.springframework.core.convert.support.NumberToNumberConverterFactory$NumberToNumberorg.springframework.core.convert.support.ObjectToStringConverterorg.springframework.core.convert.support.PropertiesToStringConverterorg.springframework.core.convert.support.StringToBooleanConverterorg.springframework.core.convert.support.StringToCharacterConverterorg.springframework.core.convert.support.StringToCharsetConverterorg.springframework.core.convert.support.StringToCurrencyConverterorg.springframework.core.convert.support.StringToEnumConverterFactory$StringToEnumorg.springframework.core.convert.support.StringToLocaleConverterorg.springframework.core.convert.support.StringToNumberConverterFactory$StringToNumberorg.springframework.core.convert.support.StringToPatternConverterorg.springframework.core.convert.support.StringToPropertiesConverterorg.springframework.core.convert.support.StringToRegexConverterorg.springframework.core.convert.support.StringToTimeZoneConverterorg.springframework.core.convert.support.StringToUUIDConverterorg.springframework.core.convert.support.ZoneIdToTimeZoneConverterorg.springframework.core.convert.support.ZonedDateTimeToCalendarConverterorg.springframework.core.serializer.support.DeserializingConverterorg.springframework.core.serializer.support.SerializingConverter