Java泛型并将数字加在一起
发布时间:2020-12-15 07:37:33 所属栏目:Java 来源:网络整理
导读:我想在 java中一般添加数字.我遇到了困难,因为Numbers类并不真正支持我想做的事情.到目前为止我尝试过的是: public class SummerE extends Number { public E sumValue(ListE objectsToSum) { E total = (E) new Object(); for (E number : objectsToSum){
我想在
java中一般添加数字.我遇到了困难,因为Numbers类并不真正支持我想做的事情.到目前为止我尝试过的是:
public class Summer<E extends Number> { public E sumValue(List<E> objectsToSum) { E total = (E) new Object(); for (E number : objectsToSum){ total += number; } return null; } 显然这不起作用.我该如何纠正这段代码,以便给出一个< int>列表.或者< long>或者其他什么并归还总和? 解决方法
为了一般地计算总和,您需要提供两个动作:
>一种总计零项的方法 在Java中,您可以通过界面完成.这是一个完整的例子: import java.util.*; interface adder<T extends Number> { T zero(); // Adding zero items T add(T lhs,T rhs); // Adding two items } class CalcSum<T extends Number> { // This is your method; it takes an adder now public T sumValue(List<T> list,adder<T> adder) { T total = adder.zero(); for (T n : list){ total = adder.add(total,n); } return total; } } public class sum { public static void main(String[] args) { List<Integer> list = new ArrayList<Integer>(); list.add(1); list.add(2); list.add(4); list.add(8); CalcSum<Integer> calc = new CalcSum<Integer>(); // This is how you supply an implementation for integers // through an anonymous implementation of an interface: Integer total = calc.sumValue(list,new adder<Integer>() { public Integer add(Integer a,Integer b) { return a+b; } public Integer zero() { return 0; } }); System.out.println(total); } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |