Delphi: определить фактический тип универсального?

Есть ли способ определить тип переменной, передаваемой в качестве аргумента в метод? Рассмотрим класс:

TSomeClass = class
  procedure AddToList<T: TDataType; U: TListClass<T>>(Element: T; List: U);
end;

с реализацией метода

procedure TSomeClass.AddToList<T, U>(Element: T; List: U);
begin
  if Element is TInt then
    List.AddElement(TInt.Create(XXX))
  else if Element is TString then
    List.AddElement(TString.Create(YYY));
end;

где TInt.Create () и TString.Create () имеют разные наборы аргументов, но оба они наследуют от TDataType.

Теперь я знаюis-оператор не может быть использован таким образом, но есть ли легальная альтернатива, которая делает то, что я здесь спрашиваю?

Ответы на вопрос(2)

Ваш ответ на вопрос