Я розробляю 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, яке має таку підтримку? Або є поважна причина, чому я не підтримав, що я пропустив?