请提供任何帮助。我有一个称为私有无效更新数据库的方法,其内部代码如下。我想知道有什么方法可以缩短代码而无需重复吗?
firstNameColumn.setOnEditCommit(event -> {
Customer customer = event.getRowValue();
customer.setFirstName(event.getNewValue());
try {
Utils.getInstance().update("firstName", event.getNewValue(), customer.getId());
} catch (SQLException e) {
throw new RuntimeException(e);
}
});
middleNameColumn.setOnEditCommit(event -> {
Customer customer = event.getRowValue();
customer.setFirstName(event.getNewValue());
try {
Utils.getInstance().update("middleName", event.getNewValue(), customer.getId());
} catch (SQLException e) {
throw new RuntimeException(e);
}
});
lastNameColumn.setOnEditCommit(event -> {
Customer customer = event.getRowValue();
customer.setFirstName(event.getNewValue());
try {
Utils.getInstance().update("lastName", event.getNewValue(), customer.getId());
} catch (SQLException e) {
throw new RuntimeException(e);
}
});
我具有以下字段:名列,中间名列和姓氏列,但是它们在方法内重复。
答案 0 :(得分:1)
是的。
到目前为止,我看到三个更新中使用了下一个代码:
Customer customer = event.getRowValue();
customer.setFirstName(event.getNewValue());
try {
Utils.getInstance().update("xxxx", event.getNewValue(), customer.getId());
} catch (SQLException e) {
throw new RuntimeException(e);
}
它只是通过firstName,middleName或lastName更改xxx。
您可以创建一个将由三个更新调用的函数。
firstNameColumn.setOnEditCommit(event -> {
updateCustomerBy("firstName", event);
});
middleNameColumn.setOnEditCommit(event -> {
updateCustomerBy("middleName", event);
});
lastNameColumn.setOnEditCommit(event -> {
updateCustomerBy("lastName", event);
});
private void updateCustomerBy(String name, Event event){
//I dont know the type of event, so i just put Event. You shall use the correct type
Customer customer = event.getRowValue();
customer.setFirstName(event.getNewValue());
try {
Utils.getInstance().update(name, event.getNewValue(), customer.getId());
} catch (SQLException e) {
throw new RuntimeException(e);
}
}
答案 1 :(得分:0)
firstNameColumn.setOnEditCommit(event -> {
update("firstName",event)
});
middleNameColumn.setOnEditCommit(event -> {
update("middleName",event) });
lastNameColumn.setOnEditCommit(event -> {
update("lastName",event)});
public void update(String column,Event event){
Customer customer = event.getRowValue();
customer.setFirstName(event.getNewValue());
try {
Utils.getInstance().update(column, event.getNewValue(), customer.getId());
} catch (SQLException e) {
throw new RuntimeException(e);
}
}