2014-12-08 3 views
2

Могу ли я получить InstanceMirror без использования какого-либо конструктора в Dart?Могу ли я получить экземпляр экземпляра класса без использования какого-либо конструктора в Dart?

Точнее: у меня есть класс с или без какого-либо специального конструктора, но я бы хотел получить экземпляр InstanceMirror без необходимости предоставлять конструктор или любые аргументы вообще.

Например, PHP предлагает ReflectionClass :: newInstanceWithoutConstructor

Приветствия

+0

Ваш вопрос не имеет для меня большого смысла. Можете ли вы объяснить, что вы на самом деле пытаетесь выполнить? –

+0

В чем проблема, которую вы хотите решить? – Robert

+0

В настоящее время я играю с зеркалами, шаблоном прототипа и возможными реализациями методов clone(). Если бы я мог получить InstanceMirror, не беспокоясь о конструкторе (-ах) класса, я мог бы просто скопировать значения с одного объекта на другой на первом шаге. Таким образом, я дал хороший инструмент для мелких копий. Использование аннотаций может затем предоставить дескриптор, чтобы показать необходимость глубокого копирования одиночных значений путем рекурсии. Это приводит к прекрасному инструменту клонирования объектов (или к рекурсивному аду, который еще предстоит определить). – wellnoidea

ответ

0

Новый Если класс не имеет конструктора, конструктор по умолчанию без аргументов создается неявно для этого класса, и вы можете используй это.

Если класс имеет один или несколько явных конструкторов, вы можете создать новый экземпляр только с помощью одного из них.

Старый
Я не уверен, если я полностью понимаю ваши вопросы, но в основном - нет. Если ваш класс не имеет конструктора, используется неявный конструктор по умолчанию.

Экземпляр класса создается с помощью new SomeClass, который создает новый экземпляр и вызывает конструктор. Есть и другие способы, как литералы {'x': 1, 'y': 2}, но я уверен, что так называется конструктор.

+0

Извините за то, что вы слишком расплывчаты. Я объяснил это немного больше :) – wellnoidea

1
  1. Зачем вам нужно InstanceMirror и почему вы не можете использовать ClassMirror?

  2. Просто перечислите все доступные конструкторы из ClassMirror и затем используйте конструктор с аргументами 0 для создания нового экземпляра.

Версия PHP: «Создает новый экземпляр класса без вызова конструктора». Для меня это совершенно не имеет смысла. Вот почему есть конструкторы: вызывается во время создания.

+0

^^ «Для меня это совершенно не имеет смысла». Добро пожаловать на PHP! – wellnoidea

 Смежные вопросы

  • Нет связанных вопросов^_^