java把代码提出为一个方法_请问这段Java代码能不能封装成一个方法

问题描述

这段代码在我的项目中经常会被使用到,想要把它封装成一个方法以达到减少代码量的目的,但由于本人是个菜鸟没能做到,希望有心的大神提供下思路。在此先行拜谢了。

目的:想将hardwareServices和Hardware这两个类变成形参

问题出现的环境背景及自己尝试过哪些方法

Java版本:1.8

尝试用泛型,但是由于要调用类的方法,以报错告终

相关代码

// 请把代码文本粘贴到下方(请勿用图片代替代码)

private HardwareServices hardwareServices;

List hardwareList = hardwareServices.selectList(wrapper);

if(hardwareList.size() > 0){

for (Hardware i: hardwareList) {

if(i.getName().equals(hardware.getName())){

if(i.getIsDelete() == 1){

wrapper.eq("is_delete", 1).eq("id", i.getId());

hardware.setIsDelete(0);

hardware.setChangeMan(selectUser.getName());

hardware.setUpdateTime(nowData);

hardwareServices.update(hardware, wrapper);

result.setValue(hardware);

}else{

result.setMsg("已有同名五金");

result.setCode(-1);

}

return result;

}

}

}

下面是另一个地方的代码:

EntityWrapper wrapper = new EntityWrapper();

List hardwareList=productProcessServices.selectList(wrapper);

if(hardwareList.size() > 0){

for (ProductProcess i: hardwareList) {

if(i.getName().equals(productProcess.getName())){

if(i.getIsDelete() == 1){

wrapper.eq("is_delete", 1).eq("id", i.getId());

productProcess.setIsDelete(0);

productProcess.setChangeMan(selectUser.getName());

productProcess.setUpdateTime(nowData);

productProcessServices.update(productProcess, wrapper);

result.setValue(productProcess);

}else{

result.setMsg("已有工序");

result.setCode(-1);

}

return result;

}

}

}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
如果你想将这段代码封装一个方法,可以将它定义在一个合适的类中,并根据需要添加参数和返回类型。以下是一个简单的示例: ```java import javax.script.ScriptEngine; import javax.script.ScriptEngineManager; import javax.script.ScriptException; public class StateCodeEvaluator { public static int evaluate(String condition, AutoChangeStateInfo autoChangeStateInfo) { try { ScriptEngine engine = new ScriptEngineManager().getEngineByName("js"); engine.put("OldState", autoChangeStateInfo.OldState); engine.put("Speed", autoChangeStateInfo.Speed); engine.put("LocalAddressDistance", autoChangeStateInfo.LocalAddressDistance); engine.put("SendAddressDistance", autoChangeStateInfo.SendAddressDistance); engine.put("StationDistance", autoChangeStateInfo.StationDistance); engine.put("StateDuration", autoChangeStateInfo.StateDuration); double result = (double) engine.eval(condition); return (int) result; } catch (ScriptException e) { System.err.println("解析自动改状态表达式异常:" + e.getMessage()); return -1; } } } ``` 在上述示例中,我们创建了一个名为 `StateCodeEvaluator` 的类,并在其中定义了一个名为 `evaluate` 的静态方法。这个方法接受一个表示条件的字符串 `condition` 和一个 `AutoChangeStateInfo` 对象,并返回一个整数值。 在方法内部,我们使用与之前相同的逻辑来执行 JavaScript 表达式并返回结果。如果出现异常,我们将在控制台打印错误信息并返回 `-1`。 你可以根据你的需求和项目结构来调整这个示例代码,并使用合适的异常处理和日志记录方式。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值