extractComponentType method
Extract component type for arrays/lists
Parameters:
parentClass
: The class representing the collection.
Returns:
- The component type, or
null
if not an array/list.
Example
final listClass = await loader.loadClass<List<String>>('dart:core/list.dart.List');
final componentType = loader.extractComponentType(listClass);
print(componentType?.qualifiedName); // "dart:core/string.dart.String"
Implementation
@override
Type? extractComponentType(Class parentClass) {
// Handle generic classes with type arguments
final typeArgs = parentClass.getTypeDeclaration().getTypeArguments();
if (typeArgs.isNotEmpty && typeArgs.length == 1) {
return _getFromLink(typeArgs.first, parentClass.getProtectionDomain()).getType();
} else if (typeArgs.length >= 2) {
return _getFromLink(typeArgs[1], parentClass.getProtectionDomain()).getType();
}
return null;
}