# ParameterizedTypeReference<T> constructor

ParameterizedTypeReference<T>()

Creates a type reference that captures the generic type parameter.

The factory constructor returns an anonymous subclass that preserves the generic type information at runtime.

Example:

    // Correct - creates anonymous subclass
    final goodRef = ParameterizedTypeReference<Map<String, dynamic>>();

    // Incorrect - loses type information
    final badRef = _ParameterizedTypeReference<Map<String, dynamic>>();

A runtime type reference for capturing and working with parameterized/generic types.

This class solves the Dart limitation where `List<String>.runtimeType` loses generic type arguments. By creating a subclass (typically anonymous), the type information is preserved at runtime.

## Usage

### Basic Usage

    final listRef = ParameterizedTypeReference<List<String>>();
    print(listRef.getType()); // List<String>

### With Complex Types

    final complexRef = ParameterizedTypeReference<Map<String, List<int>>>();
    print(complexRef.getType()); // Map<String, List<int>>

### With ResolvableType

    final ref = ParameterizedTypeReference<Set<double>>();
    final resolvable = ref.getResolvableType();
    print(resolvable.genericParameters[0].type); // double

## Implementation Notes

- Always create as an anonymous subclass using the factory constructor
- The actual type capture happens through Dart's type inference
- Works with nested generic types (e.g., `Map<String, List<int>>`)

## Implementation

    factory ParameterizedTypeReference() => _ParameterizedTypeReference<T>();