金鑫9527 2024-01-26 15:26 采纳率: 14.3%
浏览 6
已结题

关于#java#的问题:想提出一个公共方法

又两个相同方法 ,只有参数不一样,大部分业务逻辑都一样,想提出一个公共方法

public   void test1(A a){
    String a = getInfo(a.getId)
    //....相同业务逻辑
    BeanCopyUtils.copy(a,c);
   //....相同业务逻辑
   //.....
}
public   void test2(B b){
    String a = getInfo(b.getId)
    //....相同业务逻辑
    BeanCopyUtils.copy(b,c);
   //....相同业务逻辑
   //.....
}
  • 写回答

4条回答 默认 最新

  • 爱编程的鱼 2024-01-26 15:31
    关注

    你可以将这两个方法提取出一个公共方法,并将参数类型改为一个通用的父类或接口。这样,你可以在公共方法中使用通用的参数类型,并在方法内部根据具体的对象类型进行逻辑处理。以下是一个示例代码:

    public void commonMethod(BaseObject obj) {
        String id = obj.getId();
        String a = getInfo(id);
        //....相同业务逻辑
        BeanCopyUtils.copy(obj, c);
        //....相同业务逻辑
        //.....
    }
    
    // 调用示例
    A a = new A();
    test1(a);
    
    B b = new B();
    test2(b);
    

    在上面的代码中,commonMethod 方法接受一个类型为 BaseObject 的参数,这是 AB 类的共同父类或接口。在方法内部,你可以根据具体的对象类型来执行逻辑操作。

    请确保在 BeanCopyUtils.copy 方法中,能够正确处理 AB 对象的属性复制。你可能需要根据具体的需求和对象结构,对 BeanCopyUtils 进行适当的修改或配置。

    通过提取公共方法,可以避免代码重复,并提高代码的可维护性和可扩展性。

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 3月19日
  • 创建了问题 1月26日

悬赏问题

  • ¥20 ESP32使用MicroPyhon开发,怎么获取485温湿度的值,温湿度计使用的鞋子是Modbus RTU
  • ¥50 苹果MGIE项目部署缺少emb权重
  • ¥15 采用ansys进行机翼在特定路径下的打孔过程中的受力分析
  • ¥15 单片机adb主机连接手机,usb调试密钥无法保存
  • ¥15 已知X和Y有以下关系,求X和Y的关系式
  • ¥15 net core 同时编辑怎么防止数据多保存了
  • ¥15 matlab做ba模型让其在ba和er规则下生长
  • ¥15 请问Quartus的Verilog代码怎么写?
  • ¥100 Mac 版foxmail 收邮件问题
  • ¥15 QWebEngineView