我想重构一些UI代码。
我有一个HTML表单(这里:用一个叫做Wicket的Java GUI编写),在那里我放了一些链接(锚标签)。不是一遍又一遍地重复代码,我想创建一个新的优雅的helper方法。
String type = "", id = "";
Form form, Service service;
form.add(new Widget("createLink", form) { // the same for read, update, delete
private static final long serialVersionUID = 1L;
@Override
public void onSubmit() {
try {
service.create(type, id); // the same for service.read / update / delete
info("Specific message for create, read, update, delete");
} catch (DataAccessException e) {
error(ExceptionUtils.getRootCauseMessage(e));
}
}
});
form.add(new Widget("readLink", form) {
// ... service.read(...); info("... read ...");
});
form.add(new Widget("updateLink", form) {
// ... service.update(...); info("... update ...");
});
你已经猜到了,我想要某物。就像
form.add(createLink(htmlId, form, type, id, message, ?));
我想避免为此创建一个额外的类。但兰姆达斯就行了。
最好的方法是什么?而这个模式是怎么叫的呢?
多谢了。
对于?
您可以使用java.util.function.consumer
:
private void createLink(String htmlId, Form<?> form, String type, String id, String feedbackMessage, Runnable _onSubmit) {
return new Widget(htmlId, form) {
private static final long serialVersionUID = 1L;
@Override
public void onSubmit() {
try {
_onSubmit();
info(feedbackMessage);
} catch (DataAccessException e) {
error(ExceptionUtils.getRootCauseMessage(e));
}
}
}
}
用法:
form.add(createLink("createLink", form, type, id, createMessage, () -> {
service.create(type, id);
}));
我想知道为什么下面的代码: 我被要求详细解释,但我不明白为什么输出是这样的。请有人帮帮我。
基本上,我需要拿出一个伪代码。我现在拥有的是 dictionary={} if节点。左==无和节点。右==无 访问(节点) 字典[节点]=1 这只是叶节点,如何获取每个节点(父节点和根节点)的大小?
问题内容: 我碰到了Java行,并对它的输出感到困惑。您能否解释一下此代码背后的逻辑 输出: 问题答案: 好吧,它等效于: 真正地将原始内容显式转换为只是使其调用而不是。 我相信to 转换 实际上首先 要进行隐式加宽转换-就像这样: 这些帮助有用?
我正在看宣传单。 在setTimeout中调用
我必须在此处显示tableView中的所有数据,但其他细节不适合设备的大小。 正如您所看到的,除了“项目详细信息”之外,这些信息是可读的。但是客户给我说,“项目细节”可能比设备屏幕(iPhone o iPad||横向或纵向)更长。 如果项目详细信息的字符串比设备屏幕长,那么显示这些信息的最佳方法是什么?
为什么jaxb在下面生成一个名为的类型参数? 这个文件是由JavaTM体系结构用于XML绑定(JAXB)参考实现生成的: 也许这是一个我不知道的设计模式?