EDIT: trovato la soluzione qui: http://www.dreamsyssoft.com/java-8-lambda-tutorial/map-reduce-tutorial.phpJava 8 somma e totale non trovato
Sto seguendo questo tutorial:
http://www.oracle.com/webfolder/technetwork/tutorials/obe/java/Lambda-QuickStart/index.html
Quando arrivo alla parte in cui si sta usando la somma e funzioni medie, viene visualizzato il seguente errore:
UserAverageTest.java:68: error: cannot find symbol
double average = users.parallelStream().filter(u -> u.age > 0).map(u -> u.age).average().getAsDouble();
^
symbol: method average()
location: interface Stream<Double>
Ottengo lo stesso errore quando si chiama sum. Per qualche ragione sembra che stia usando lo Stream invece della classe DoubleStream. Sto usando l'ultimo jdk con lambda abilitato che è collegato nel tutorial.
Qualcuno ha riscontrato questo problema ed è stato in grado di risolverlo?
Ecco un semplice esempio che riproduce il problema:
class User {
double age;
public User(double age) { this.age = age; }
double getAge() { return age; }
}
public static void main(String[] args) throws Exception {
List<User> users = Arrays.asList(new User(10), new User(20), new User(30));
double average = users.parallelStream()
.filter(u -> u.age > 0)
.map(u -> u.age)
.average()
.getAsDouble();
}
Oh wow, ho pensato che dovevamo aspettare fino a settembre per giocare con JDK 8. –
è possibile ottenere una versione di accesso anticipato – BevynQ
Quando si lavora con una versione anticipata potrebbe essere meglio prendere domande/dubbi su un aiuto specifico di JDK 8 forum .... –