【发布时间】:2011-11-07 21:25:33
【问题描述】:
我有戏!具有两个包含冗余代码的操作的框架。所以我将此代码分解为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,因为它比局部变量更清楚意图。
【问题讨论】:
-
请记住,如果您将辅助方法公开,则会发生重定向。见stackoverflow.com/questions/3899670/…。这不是你现在的问题,但可能是下一个问题,会发生一些神奇的事情。
-
谢谢,我知道了。
标签: java playframework static-methods