Что означает «Заглушка сгенерированного метода TODO»? [закрыто]

9

Я использую Eclipse для программирования Android, и каждый здесь и там я вижу утверждение, "TODO Автоматически сгенерированный метод заглушки".

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

Зачем это нужно повторять везде?


источник
1
Вы можете изменить шаблон в Eclipse, если он вам не нравится
DPM
3
Этот вопрос выглядит не по теме, поскольку он не демонстрирует минимального понимания используемой среды IDE.
Джим Г.

Ответы:

9

TODO - это одно из нескольких ключевых слов по умолчанию, которые указывают задачи, которые нужно выполнить в Eclipse. В windows-> Preferences-> Java-> Compiler-> Task Tags вы должны увидеть эти ключевые слова. Предполагается добавить комментарий с этим ключевым словом, чтобы автоматически указывать, что еще предстоит завершить, что удобно, если вы используете эти теги задач.

Однако, если вы не используете их, вы должны изменить шаблоны кода (Preferences-> Java-> Code Style-> Code Templates), чтобы исключить эти комментарии.

В частности:

  • Код-> Тело метода
  • Код-> Тело конструктора
  • Код-> Корпус блока захвата
Нил
источник
5
Это больше, чем просто Eclipse, который поддерживает комментарии TODO - NetBeans, Visual Studio, JetBrains и многие другие также предоставляют функции списка задач, извлекаемые из комментариев в стиле TODO. Кроме того, это не отвечает на заданный вопрос - что означает комментарий в стиле TODO и как он имеет ценность.
Томас Оуэнс
2
Я предпочитаю поведение Visual Studio (ReSharpers?) При создании заглушек, throw new NotImplementedException();поскольку забвению гораздо труднее игнорировать, чем бездействующему провалу пустой метод.
Дэн возится с огнем
1
@ThomasOwens Он назвал Eclipse, а не NetBeans, Visual Studio, JetBrains и другие. Кроме того, это именно то, что означает TODO и как он используется.
Нил
1
@DanNeely Мне это тоже нравится, поэтому мои автоматически сгенерированные шаблоны кода в Eclipse выглядят так:throw new UnsupportedOperationException("Auto-generated method stub"); // TODO Auto-generated method stub
Саймон Леманн
16

Eclipse создает просто пустые методы, которые возвращают ноль (отсюда и «заглушка»). Комментарии вставляются, чтобы напомнить разработчику, что он, вероятно, захочет что- то сделать в этих методах, в противном случае, почему они должны существовать? Вы должны удалить комментарии, когда вы это сделали.

Если вы видите эти комментарии повсюду, то либо (если они действительно содержат реализации) разработчики ленивы, либо считают, что комментарии имеют какую-то другую цель, и поэтому не удаляют их, либо это указывает на слабый дизайн, обычно интерфейсы, которые слишком велики и имеют реализации (и пользователей), которые на самом деле не используют все методы интерфейса.

Майкл Боргвардт
источник
7

Многие IDE, в том числе Eclipse, используют «TODO» в комментарии для создания списков задач. Эти списки задач включают текст комментария, а также файл и метод, в котором находится комментарий. Это позволяет каждому, кто использует инструмент с этой функциональностью, создавать списки вещей, которые все еще открыты. Есть также некоторые другие общие идентификаторы, такие как FIXME или XXX, которые имеют похожую функциональность в некоторых IDE. Этот вопрос о переполнении стека задает вопрос о ключевых словах комментариев в Eclipse и предоставляет дополнительную информацию.

Когда вы автоматически генерируете некоторые функции, ожидается, что вы вставите свою собственную реализацию. Он добавляет соответствующую заглушку, чтобы ваш код компилировался, но добавляет комментарии, чтобы вы могли быстро найти методы, которые необходимо реализовать. Обратите внимание, что некоторые автоматически сгенерированные функции, такие как autogenerated toStringи hashcodefunctions, не содержат этих комментариев, потому что вы не будете изменять их.

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

Томас Оуэнс
источник
4

TODO просто означает «TO DO», генерируется заглушка, но разработчику или программисту необходимо добавлять код по мере необходимости.

user42588
источник