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

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

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

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

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

話雖如此,srborlongan已經提供了一種解決該問題的方法。該解決方案的問題在于,您必須Test針對每種類型(整數,雙精度等)上的每種類型的操作(加法,減法等)不斷修改類。另一種解決方案是使用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);}

創建一個子類Test將添加兩個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));}

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

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

解決方法

如何在Java 8中使用泛型參數重載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(); }}

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

標簽: java
相關文章:
主站蜘蛛池模板: 欧美精品午夜久久久伊人 | 国产福利最新手机在线观看 | 手机看片福利在线 | 日本一区二区三区精品视频 | 久久黄色片 | 国产精品久久久久久久久久影院 | 国产精品手机视频一区二区 | 日本免费二区三区久久 | 伊人天堂在线 | 久在线观看视频 | 国产手机免费视频 | 热99re久久精品香蕉 | 又摸又揉又黄又爽的视频 | 看片网站在线 | 特级a欧美孕妇做爰片毛片 特级a欧美做爰片毛片 | 日韩在线手机看片免费看 | 视频二区在线观看 | 国产欧美日韩在线 | 久久久亚洲精品国产 | 精品一区二区三区五区六区 | 国产成人免费午夜在线观看 | 手机看片日本 | 亚洲国产老鸭窝一区二区三区 | 上海一级毛片 | 91老色批网站免费看 | 国产精品拍自在线观看 | 国产成人精品免费视频大全可播放的 | 欧美精品做人一级爱免费 | 国产国语在线播放视频 | 亚洲一区二区三区成人 | 手机看片1024国产基地 | 成人牲交一极毛片 | 欧美高清免费精品国产自 | 免费人成年短视频在线观看网站 | 性生活视频网站 | 中国老太性色xxxxxhd | 精品国产三级a∨在线观看 精品国产三级a在线观看 | 国产精品久久久久久网站 | 亚洲看片网 | 欧美的高清视频在线观看 | 亚洲天堂视频在线观看 |