EDIT: Tìm thấy giải pháp ở đây: http://www.dreamsyssoft.com/java-8-lambda-tutorial/map-reduce-tutorial.phpJava 8 tổng và tổng không tìm thấy
Tôi đang theo hướng dẫn này:
http://www.oracle.com/webfolder/technetwork/tutorials/obe/java/Lambda-QuickStart/index.html
Khi tôi nhận được đến phần mà nó sử dụng số tiền và chức năng trung bình, tôi nhận được lỗi sau:
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>
Tôi gặp lỗi tương tự khi gọi tổng. Vì lý do nào đó, có vẻ như nó đang sử dụng luồng thay vì lớp DoubleStream. Tôi đang sử dụng jdk mới nhất với lambda kích hoạt được liên kết trong hướng dẫn.
Có ai cũng gặp sự cố này và có thể giải quyết vấn đề này không?
Dưới đây là một ví dụ đơn giản mà tái tạo các vấn đề:
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();
}
Ồ wow, tôi nghĩ chúng tôi phải chờ đến tháng 9 để giải quyết JDK 8. –
bạn có thể nhận bản phát hành truy cập sớm – BevynQ
Khi làm việc với bản phát hành sớm, có thể tốt hơn nếu bạn đặt câu hỏi/quan tâm đến trợ giúp cụ thể JDK 8 diễn đàn .... –