2012-09-04 17 views

cevap

13

Java Her sayısal tip Number uzanır, bu yüzden bir yöntemde tüm sayı türlerini ortalamasına sınırlı tip parametre (teşekkür Paul) kullanabilirsiniz:

public static <N extends Number> double calculateMean(List<N> numbers) { 
    double sum = 0.0; 
    for (N number : numbers) 
     sum += number.doubleValue(); 
    return sum/numbers.size(); 
    } 

örn Böyle: Lists Guava parçasıdır

double intMean = calculateMean(Lists.newArrayList(1,2,3,4,5)); 
double doubleMean = calculateMean(Lists.newArrayList(1d,2d,3d,4d,5d)); 
double longMean = calculateMean(Lists.newArrayList(1l,2l,3l,4l,5l)); 

Not söyledi.

+2

+1 Güzel yanıt. Nitpick: Bu sınırlı bir [* type parameter *] (http://docs.oracle.com/javase/tutorial/extra/generics/methods.html) - sınırlı [joker] (http://docs.oracle) 'dir. com/javase/tutorial/extra/generics/wildcards.html) 'Liste sayılarını genişletir (bu durumda aynı davranır). –

+0

@PaulBellora Haklısınız, düzeltildiniz. Teşekkürler ;) –