gpt4 book ai didi

java - 将方法转换为通用方法以避免重复代码

转载 作者:行者123 更新时间:2023-12-04 00:53:37 25 4
gpt4 key购买 nike

我在以下方面需要一些帮助:我多次调用了一个如下所示的方法:

private void saveA(myObjA myObj, List<A> myList) {
if (myList != null && !myList.isEmpty()) {
myObj.saveAll(myList);
}
}

private void saveB(myObjB myObj, List<B> myList) {
if (myList != null && !myList.isEmpty()) {
myObj.saveAll(myList);
}
}

...

接口(interface)示例:

public interface myObjA
extends JpaRepository<A, Long> {

}

public interface myObjB
extends JpaRepository<B, Long> {

}

...

问题是我正在为所有其他调用(myObjB、myListB、myObjC、myListC)创建一个新调用。 myObj 实际上是一个接口(interface),第二个参数总是一些对象的列表。有什么方法可以将此方法转换为单个方法并在调用中指定对象类型吗?

最佳答案

这可以使用通用方法来完成:

public <T, N> void save(JpaRepository<T, N> repo, List<T> list) {
if (null != list && !list.isEmpty()) {
repo.saveAll(list);
}
}

// usage
@Autowired
private MyRepo repository; // MyRepo implements JpaRepository<MyObj, Long>

public void foo(List<MyObj> list) {
save(repository, list);
}

关于java - 将方法转换为通用方法以避免重复代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64430109/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com