Tworzę API z wieloma identycznie nazwanymi metodami, które różnią się tylko podpisem, co, jak sądzę, jest dość powszechne. Wszystkie robią to samo, z wyjątkiem tego, że domyślnie inicjują różne wartości, jeśli użytkownik nie chce ich określać. Jako przystępny przykład rozważ
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);
}
Zasadnicza czynność wykonywana przez wszystkie te metody jest taka sama; drzewo jest sadzone w lesie. Wiele ważnych rzeczy, które użytkownicy mojego API muszą wiedzieć o dodawaniu drzew wstrzymanych dla wszystkich tych metod.
Idealnie chciałbym napisać jeden blok Javadoc, który jest używany przez wszystkie metody:
/**
* 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%.
*/
W mojej wyobraźni narzędzie mogłoby magicznie wybrać, który z parametrów @params ma zastosowanie do każdej z metod, a tym samym wygenerować dobre dokumenty dla wszystkich metod naraz.
W Javadoc, jeśli dobrze rozumiem, wszystko, co mogę zrobić, to w zasadzie skopiować i wkleić ten sam blok javadoc pięć razy, z tylko nieznacznie różniącą się listą parametrów dla każdej metody. Wydaje mi się to kłopotliwe i trudne do utrzymania.
Czy można to obejść? Jakieś rozszerzenie javadoc, które ma tego rodzaju obsługę? A może istnieje dobry powód, dla którego to nie jest obsługiwane, a przegapiłem?