国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術(shù)文章
文章詳情頁

執(zhí)行映射減少操作的通用方法。(Java-8)

瀏覽:85日期:2024-05-01 10:15:43
如何解決執(zhí)行映射減少操作的通用方法。(Java-8)?

您所提出的示例與Java 8無關(guān),與Java中泛型的工作原理無關(guān)。Function<T, Integer>function并將在編譯時(shí)Function<T, Double>function進(jìn)行類型擦除,并將其轉(zhuǎn)換為Function。方法重載的經(jīng)驗(yàn)法則是具有不同的數(shù)量,類型或參數(shù)順序。由于這兩種方法都將轉(zhuǎn)換為采用Function參數(shù),因此編譯器會(huì)抱怨它。

話雖如此,srborlongan已經(jīng)提供了一種解決該問題的方法。該解決方案的問題在于,您必須Test針對每種類型(整數(shù),雙精度等)上的每種類型的操作(加法,減法等)不斷修改類。另一種解決方案是使用methodoverriding而不是method overloading:

Test如下更改類:

public abstract class Test<I,O extends Number> { List<I> list = new ArrayList<>(); public O performOperation(Function<I,O> function) {return list.stream().map(function).reduce((a,b)->operation(a,b)).get(); } public void add(I i) {list.add(i); } public abstract O operation(O a,O b);}

創(chuàng)建一個(gè)子類Test將添加兩個(gè)Integer。

public class MapStringToIntAddtionoperation extends Test<String,Integer> { @Override public Integer operation(Integer a,Integer b) {return a+b; }}

然后,客戶代碼可以使用上述代碼,如下所示:

public static void main(String []args) { Test<String,Integer> test = new MapStringToIntAddtionoperation(); test.add('1'); test.add('2'); System.out.println(test.performOperation(Integer::parseInt));}

使用這種方法的優(yōu)點(diǎn)是您的Test班級符合該open-closed原則。要添加新的運(yùn)算(如乘法),您要做的就是添加的新子類Test和將兩個(gè)數(shù)字相乘override的operation方法。將其與Decorator模式結(jié)合使用,您甚至可以最小化必須創(chuàng)建的子類的數(shù)量。

此答案中的示例僅供參考。有很多改進(jìn)的領(lǐng)域(例如使Test功能接口代替抽象類)超出了問題的范圍。

解決方法

如何在Java 8中使用泛型參數(shù)重載Function?

public class Test<T> { List<T> list = new ArrayList<>(); public int sum(Function<T,Integer> function) {return list.stream().map(function).reduce(Integer::sum).get(); } public double sum(Function<T,Double> function) {return list.stream().map(function).reduce(Double::sum).get(); }}

錯(cuò)誤:java:名稱沖突:sum(java.util.function.Function)和sum(java.util.function.Function)具有相同的擦除

標(biāo)簽: java
相關(guān)文章:
主站蜘蛛池模板: 亚洲国产成人久久综合碰 | 成年网站视频在线观看 | 男女交性拍拍拍高清视频 | 国产三区视频在线观看 | 亚洲视频网址 | 91小视频在线观看免费版高清 | 日韩欧美一区二区精品久久 | 成年人黄色免费网站 | 国产精品密蕾丝视频 | 久久亚洲国产成人亚 | 国产一级在线 | 欧美亚洲免费 | 老司机精品福利视频 | 97在线免费视频观看 | 亚洲欧洲日韩综合色天使不卡 | 在线观看香蕉免费啪在线观看 | 6一12呦女精品 | 男人桶女人逼 | 美女啪啪网站又黄又免费 | 日韩欧美在线视频观看 | 男女视频免费观看 | 狠狠色综合久久婷婷 | 亚洲一区二区免费 | 成人看片黄a在线观看 | 欧美性xxxx极品高清 | 免费播放欧美毛片 | 亚洲国产国产综合一区首页 | 一级一级 a爱片免费视频 | 成人黄页 | 中国成人在线视频 | 国产精品久久久久久久久久久不卡 | 日韩中文字幕精品一区在线 | 看久久久久毛片婷婷色 | 手机成人看片 | 国产精品亚洲欧美日韩区 | 一级毛片免费视频观看 | 中文字幕一区视频一线 | 国产精品毛片在线更新 | 亚洲专区在线 | 亚洲精品亚洲人成在线麻豆 | 日韩一级视频在线观看播放 |