亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術文章
文章詳情頁

java - 將list<bean> 強轉成另一種bean的list。

瀏覽:69日期:2023-11-29 16:39:13

問題描述

public static class DataBean { private int value; private BigDecimal name;}public class ChartData { private Integer time; private BigDecimal result;}

我需要類似于如下的操作,

List<ChartData> data = getdata();List<SeriesBean.DataBean> yValue = data.stream().map(item -> (SeriesBean.DataBean) item);

報錯不可轉換的類型,DataBean是個內部靜態類。C++里面有reinterpret_cast可以強轉,java應該有相應的方法的

問題解答

回答1:

Apache Commons 的 BeanUtils 和 Spring 的 BeanUtils 都有提供 copyProperties 方法,作用是將一個對象的屬性的值賦值給另外一個對象,但前提是兩個對象的屬性類型且 名字 相同。

比如使用 Apache Commons 的 BeanUtils:

import java.math.BigDecimal;import org.apache.commons.beanutils.BeanUtils;public class TestBeanUtils { public static void main(String[] args) throws Exception {ChartData src = new ChartData(1, BigDecimal.valueOf(123));DataBean dest = new DataBean();BeanUtils.copyProperties(dest, src);System.out.println(src);System.out.println(dest); } public static class DataBean {private int time;private BigDecimal result;public int getTime() { return time;}public void setTime(int time) { this.time = time;}public BigDecimal getResult() { return result;}public void setResult(BigDecimal result) { this.result = result;}@Overridepublic String toString() { return 'DataBean{' + 'time=' + time + ', result=' + result + ’}’;} } public static class ChartData {private Integer time;private BigDecimal result;public ChartData(Integer time, BigDecimal result) { this.time = time; this.result = result;}public Integer getTime() { return time;}public BigDecimal getResult() { return result;}public void setTime(Integer time) { this.time = time;}public void setResult(BigDecimal result) { this.result = result;}@Overridepublic String toString() { return 'ChartData{' + 'time=' + time + ', result=' + result + ’}’;} }}

java - 將list<bean> 強轉成另一種bean的list。

所以如果 ChartData 和 DataBean 的屬性名稱一致,你的代碼可以這樣寫(就不用挨個屬性的寫 setter 方法了):

List<ChartData> data = getdata();List<DataBean> yValue = new ArrayList<>(data.size());for (ChartData item : data) { DataBean bean = new DataBean(); BeanUtils.copyProperties(bean, item); yValue.add(bean);}

當然,需要注意的一點是,這是使用反射實現的,效率要比直接寫 setter 方法要低一些。

回答2:

List<DataBean> yValue = data.stream().map(item -> { DataBean bean = new DataBean(); bean.setName(item.getResult()); bean.setValue(item.getTime()); return bean;}).collect(Collectors.toList());回答3:

強轉只能父類轉子類,你這就老實點一個個字段set過去就好了

回答4:

樓主學習一下 Java 的類型轉換啊。這種條件下,不能強轉的。

標簽: java
相關文章:
主站蜘蛛池模板: 桃色播播 | 亚洲免费黄色网址 | 亚洲成人福利在线观看 | 一级毛片一级毛片一级级毛片 | 国产婷婷一区二区在线观看 | 亚洲综合一区二区 | 久久91精品国产91久 | 欧美专区视频 | 日本成a人片在线观看网址 日本成人一区二区 | 婷婷色天使在线视频观看 | 1024香蕉视频 | 中文精品爱久久久国产 | 日本三级无码中文字幕 | 久久婷婷国产综合精品 | 成人免费午夜性视频 | 9久久免费国产精品特黄 | 免费一级黄色大片 | 91精品国产闺蜜国产在线 | 日韩在线视精品在亚洲 | 欧美日韩中文字幕在线手机版本 | 国产色窝| 手机看片日韩日韩韩 | 日韩日韩日韩日韩日韩 | 国产精品亚洲欧美一区麻豆 | 欧美日韩国产一区三区 | 日韩永久在线观看免费视频 | 天天伊人网 | 免费a一级毛片在线播放 | 99精品免费在线 | 亚洲特黄大黄一级毛片 | 成人男女网18免费看 | 深夜福利1000| 在线免费观看黄色片 | 国产精品一级视频 | 性色a按摩videos | 亚洲三级网址 | 国产成人精品免费视频网页大全 | 精品国产91久久久久久久 | 年轻人免费看的高清www | 精品国产一区二区二三区在线观看 | 色图图|