Как поразмышлять о классе из импортированного пакета с закрытым конструктором? - PullRequest
1 голос
/ 11 апреля 2019

Я использую библиотеку reflectable для отражения типов из импортируемых пакетов (например, analysis_server_client или flutter). Я могу подумать о типах, которые имеют открытые конструкторы, такие как Notification или Request (из пакета analysis_server_client). Я размышляю об этих типах, расширяя эти типы, а затем используя возможность superclassQuantifyCapability.

Однако я не могу размышлять о типах, которые имеют закрытый конструктор, например Icons (из пакета flutter), поскольку не могу их расширить. Есть ли способ отразить такие типы, как Icons, которые имеют закрытый конструктор?

1 Ответ

0 голосов
/ 17 апреля 2019

Я понял это. Вы должны использовать GlobalQuantifyCapability, который позволяет вам указать, на каких элементах будет генерироваться отражение. Он работает и на классах с частными конструкторами. Пример кода:

@GlobalQuantifyCapability(r"^.(SomeClass|SomeEnum)", reflector)
import 'package:reflectable/reflectable.dart';

import 'package:some_package/some_class.dart';
import 'package:some_package/some_enum.dart';

class Reflector extends Reflectable {
  const Reflector() : super(declarationsCapability, ...);
}
const reflector = const Reflector();
...