hasGenerics method

bool hasGenerics()

Returns true if this type contains generic parameters.

This method checks whether this ResolvableType has any generic type parameters, such as the T in List<T> or the K,V in Map<K,V>.

Returns:

  • true if this type has generic parameters
  • false if this type has no generics

Example:

final stringType = ResolvableType.forClass(String);
final listType = ResolvableType.forClass(List<String>);
final mapType = ResolvableType.forClass(Map<String, int>);
final rawListType = ResolvableType.forClass(List); // Raw type

print(stringType.hasGenerics()); // false
print(listType.hasGenerics()); // true
print(mapType.hasGenerics()); // true
print(rawListType.hasGenerics()); // false (raw type)

// Useful for generic type processing
void processType(ResolvableType type) {
  if (type.hasGenerics()) {
    print("Generic type with ${type.getGenerics().length} parameters");
    for (int i = 0; i < type.getGenerics().length; i++) {
      final generic = type.getGeneric([i]);
      print("  Parameter $i: ${generic.resolve()?.getType()}");
    }
  } else {
    print("Non-generic type: ${type.resolve()?.getType()}");
  }
}

Implementation

bool hasGenerics() => getGenerics().isNotEmpty;