extractKeyType method
Extract key type for maps
Parameters:
parentClass
: The class representing the map.
Returns:
- The key type, or
null
if not a map.
Example
final mapClass = await loader.loadClass<Map<String, int>>('dart:core/map.dart.Map');
final keyType = loader.extractKeyType(mapClass);
print(keyType?.qualifiedName); // "dart:core/string.dart.String"
Implementation
@override
Type? extractKeyType(Class parentClass) {
// Handle generic classes with type arguments (Map<K,V> pattern)
final typeArgs = parentClass.getTypeDeclaration().getTypeArguments();
if (typeArgs.length >= 2) {
return _getFromLink(typeArgs[0], parentClass.getProtectionDomain()).getType();
}
return null;
}