Ваш Javadoc выглядит хорошо для меня. ясно и понятно. Не забудьте добавить, что списки имеют , которые нужно создать, и имеют , которые можно настраивать, иначе метод может пожаловаться на неприятные исключения. Вот тебе и ответ.
Но я предлагаю вам не использовать out
параметры, если вы не обязаны это делать (например, если вам нужно реализовать сторонние интерфейсы или вы должны использовать JNDI).
Метод называется getNodes
, поэтому большинство программистов ожидают, что метод возвращает массив или коллекцию узлов. Но в этом случае метод заполняет два переданных списка узлами и голотипами.
Так что, если вы можете свободно выбирать метод подписи, я предлагаю вам объявить его следующим образом:
public List<O> getNodes(List<O> cl) {
List<O> result = pickAllNodesFromList(cl);
return result;
}
public List<O> getHolotypes(List<O> cl) {
List<O> result = pickAllHolotypesFromList(cl);
return result;
}
или объявите специальный тип для класса, например:
class CLTypes<O> {
List<O> nodes = new ArrayList<O>();
List<O> holotypes = new ArrayList<O>();
CLTypes(List<O> cl) {
nodes.addAll(pickAllNodes(cl));
holotypes.addAll(pickAllNodes(cl));
}
// getters for the nodes
// ...
// private methods to pick objects for source list
// ...
}
и реализовать метод следующим образом:
public CLTypes<O> getNodes(List<O> cl) {
return new CLTypes<O>(cl);
}
Если вам нужно вернуть два списка (как я читал в комментариях выше), другое простое решение может заключаться в объединении двух списков на карте:
public Map<String, List<O>> getNodes(List<O> cl) {
Map<String, List<O>> result = new HashMap<String, List<O>>();
result.put("nodes", pickAllNodes(cl));
result.put("holotypes", pickAllHolotypes(cl));
return result;
}