我想知道是否有一种方法来减少这个方法,因为唯一改变的是获得值的计数器。
List<Vo> response = daoImpl.getresult(query).stream.map(
t-> new Vo( t.get(0,Object.class),
t.get(1,Object.class),
t.get(2,Object.class),
t.get(3,Object.class),
t.get(4,Object.class),
t.get(5,Object.class),
t.get(6,Object.class), new vo2(
t.get(7,Object.class),
t.get(8,Object.class)
))).collect(Collectors.toList());我的班级
Public class Vo(){
private Object param1;
private Object param2;
private Object param3;
private Object param3;
private Object param4;
private Object param5;
private Object param6;
private Vo2 info;
--Getter and setter
}我的班级Vo2
Public class Vo2 (){
private Object param7;
private Object param8;
--Getter and setter
}get方法属于返回元组类型列表的dao类,该方法获取结果元组中元素指定位置的值,第一个位置为0。
我想知道是否可以使用IntStream来减少代码。
我做了一个尝试,但我不知道构造函数如何从0到6位置,我属于一个对象,从7到8是另一个
List<Tuple> list =daoImpl.getresult(query);
list.stream().map(v-> new Vo(IntStream.range(0,6).mapToObj(h-> v.get(h,Object.class)))). collect(Collectors.toList());发布于 2021-02-25 18:00:25
基于我对你想要的东西的理解
这将从t.get.
Vo类中的一个,constructor.
Vo2类constructor.
Vo2类将是参数,Vo类中的两个将被打包成用于创建Vo对象的对象数组。您可能需要在构造函数中对数组进行一些转换,并对数组进行迭代以分配各个字段(或者将它们保持为数组可能更容易)。
List<Vo> response = daoImpl.getresult(query).stream
.map(t -> new Object[][]{
// create objecsts for 0 thru 6
IntStream.rangeClosed(0,6)
.mapToObj(i->t.get(i, Object.class)).toArray(Object[]::new),
// create objects for 7 thru 8
Intstream.rangeClosed(7,8)
.mapToObj(i->t.get(i,Object.class)).toArray(Object[]::new)}).
// create the Vo object
map(ob->new Vo(ob[0], new Vo2(ob[1]))).collect(Collectors.toList());
class Vo {
private Object param0;
private Object param1;
private Object param2;
private Object param3;
private Object param4;
private Object param5;
private Object param6;
private Vo2 info;
public Vo(Object[] objects0Thru6, Vo2 vo2with7and8) {
// do something with these.
}
//--Getter and setter
}发布于 2021-02-25 17:02:23
关于
List<Vo> response = daoImpl.getresult(query).stream.map(
t-> new Vo(
IntStream.range(0, 9)
.map(i -> t.get(1,Object.class))
.toArray()
))).collect(Collectors.toList());可以使用IntStream生成Vo的9个构造函数参数。
https://stackoverflow.com/questions/66372840
复制相似问题