有什么方法可以解决此问题而无需重复列代码?

请提供任何帮助。我有一个称为私有无效更新数据库的方法,其内部代码如下。我想知道有什么方法可以缩短代码而无需重复吗?

    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",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",customer.getId());
        } catch (SQLException e) {
            throw new RuntimeException(e);
        }
    });

我具有以下字段:名列,中间名列和姓氏列,但是它们在方法内重复。

iCMS 回答:有什么方法可以解决此问题而无需重复列代码?

是的。

到目前为止,我看到三个更新中使用了下一个代码:

    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,customer.getId());
    } catch (SQLException e) {
        throw new RuntimeException(e);
    }
}
,
       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,customer.getId());
            } catch (SQLException e) {
                throw new RuntimeException(e);
            }
    }
本文链接:https://www.f2er.com/1839657.html

大家都在问