Я разрабатываю API со множеством методов с одинаковыми именами, которые отличаются только сигнатурой, что, как мне кажется, довольно распространено. Все они делают одно и то же, за исключением того, что они по умолчанию инициализируют различные значения, если пользователь не хочет указывать. В качестве удобоваримого примера рассмотрим
public interface Forest
{
public Tree addTree();
public Tree addTree(int amountOfLeaves);
public Tree addTree(int amountOfLeaves, Fruit fruitType);
public Tree addTree(int amountOfLeaves, int height);
public Tree addTree(int amountOfLeaves, Fruit fruitType, int height);
}
Основные действия, выполняемые всеми этими методами, одинаковы; в лесу посажено дерево. Многие важные вещи, которые пользователи моего API должны знать о добавлении деревьев, сохраняются для всех этих методов.
В идеале я хотел бы написать один блок Javadoc, который используется всеми методами:
/**
* Plants a new tree in the forest. Please note that it may take
* up to 30 years for the tree to be fully grown.
*
* @param amountOfLeaves desired amount of leaves. Actual amount of
* leaves at maturity may differ by up to 10%.
* @param fruitType the desired type of fruit to be grown. No warranties
* are given with respect to flavour.
* @param height desired hight in centimeters. Actual hight may differ by
* up to 15%.
*/
В моем воображении инструмент мог волшебным образом выбрать, какой из @params применяется к каждому из методов, и, таким образом, генерировать хорошие документы для всех методов одновременно.
В Javadoc, если я правильно понимаю, все, что я могу сделать, - это, по сути, копировать и вставлять один и тот же блок Javadoc пять раз, при этом список параметров для каждого метода немного отличается. Это звучит громоздко для меня, и также трудно поддерживать.
Есть ли способ обойти это? Некоторое расширение для Javadoc, которое имеет такую поддержку? Или есть веская причина, почему это не поддерживается, что я пропустил?