У меня есть игра! фреймворк с двумя действиями, которые содержат избыточный код. Поэтому я включил этот код в метод private static
, но тогда он больше не работает.
public static void show(long itemId, String listId) {
render(getItem(itemId, listId));
}
private static Item getItem(long itemId, String listId) {
// otherwise duplicate code ...
return item;
}
Если я добавлю код, содержащийся в getItem
, в действие show
, то все в порядке:
// this works
public static void show(long itemId, String listId) {
Item item = // duplicate code ...
render(item);
}
Почему я не могу вызывать другие статические методы в Play! контроллер?
Решение
Благодаря «Codemwnci» я реализовал следующее решение:
public static void show(long itemId, String listId) {
renderArgs.put("item", getItem(itemId, listId));
render();
}
Я предпочитаю renderArgs
, потому что это делает намерение более ясным, чем локальная переменная.