重用插入对象数组的方法的代码

时间:2018-11-01 23:19:48

标签: java optimization arraylist design-patterns

我有一种在数据库中插入对象列表的方法:

public void insert(List<Object> objects){

}

现在,我需要插入一个对象。我不想创建一个可以插入单个对象的新方法,因为它会重复很多代码,所以我要执行以下操作:

public void insert(Object object){
  List<Object> objects = new ArrayList<>();
  objects.add(object);
  insert(objects);
}

我不知道上面的方法是否正确,我对Java的了解很高,所以我不知道将对象转换为排列的系统的成本是多少,这是否是一种好的开发技术。或者,如果按照某种模式或约定,我必须创建一种方法来插入单个对象。

2 个答案:

答案 0 :(得分:1)

您的模式没有什么不好的。不过,您可以通过更智能的方式初始化列表:

public void insert(Object object){
  insert(Arrays.asList(object));
}

答案 1 :(得分:1)

这是方法重载,而这正是做这种事情的方式。

不过,您可以通过使其更短并删除不必要的变量来改进它,如下所示:-

public void insert(Object object){
  insert(Collections.singletonList(object));
}

您可以考虑的一件事是是从insert(List<Object> objects)内部调用insert(Object object)还是相反。如果要遍历列表并逐个处理每个元素,则最好将数据库插入代码放在insert(Object object)中,并为insert(List<Object> objects)中的每个元素调用此方法。否则,如果您将列表原样传递给库方法,那么您所做的就是正确的。