Я разрабатываю 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, у которого такая поддержка? Или есть веская причина, почему это не поддерживается, что я пропустил?