Используйте Void , если вы не собираетесь использовать базовый объект модели компонента.
Семантически, он более звучит и лучше передает идея, что дело не в том, что объект модели может быть чем-либо, а в том, что он семантически ничто и никогда не будет использоваться . Ключевое слово Void чаще всего используется в качестве обычного решения в подобных ситуациях.
Если вы собираетесь использовать объект модели и вам все равно , что я не думаю, что вы имели в виду, ** используйте подстановочные знаки там, где можете ** и там, где можете 't (аргументы конструктора и т. д.), либо Void, Object, либо, возможно, какой-либо другой "охватывающий" класс, принимающий решение на основе конкретной семантики вашего компонента и желаемого поведения универсальной типизации (например, в случае конструктора для переменная компонента, вы подумаете о том, что ваш конструктор будет делать с типом Void или Object).
Конечно, это с точки зрения теории «хороших практик программирования», на практике вам не нужно сильно заботиться, хотя такое мышление может помочь вашим товарищам по команде сохранить ваш код и помочь вам лучше понять его, может быть, даже предсказывать ошибки.
Использование символов подстановки везде довольно распространено среди пользователей калитки, возможно, даже более распространено, чем решение, как я предлагал, но это не потому, что символы подстановки являются соглашением, а, скорее всего, просто из-за большинства примеров кода, которые появляются в поисковых системах, предпочитающих подстановочные знаки. Тем не менее, как подсказывает руководство по миграции Void, подстановочные знаки не только менее семантически согласованы, но и не кажутся абсолютным соглашением, даже оспариваемым, как кажется, разработчиками калитки, которые, как нам следует предположить знать достаточно о внутренней работе их типов, чтобы их рекомендации воспринимались всерьез.