Đối với một số mã tôi đang viết tôi có thể sử dụng một thực hiện chung tốt đẹp của debounce
trong Java.thực hiện debounce trong Java
public interface Callback {
public void call(Object arg);
}
class Debouncer implements Callback {
public Debouncer(Callback c, int interval) { ... }
public void call(Object arg) {
// should forward calls with the same arguments to the callback c
// but batch multiple calls inside `interval` to a single one
}
}
Khi call()
được gọi nhiều lần trong interval
mili giây với lập luận tương tự chức năng gọi lại nên được gọi là đúng một lần.
Một hình dung:
Debouncer#call xxx x xxxxxxx xxxxxxxxxxxxxxx
Callback#call x x x (interval is 2)
- Liệu (một cái gì đó tương tự) tồn tại này đã có trong một số thư viện chuẩn Java?
- Bạn sẽ triển khai điều đó như thế nào?
trông giống như [java.util.concurrency] (http://download.oracle.com/javase/1.5 .0/docs/api/java/util/concurrent/package-summary.html) cung cấp các khối xây dựng – levinalex
Tôi biết đây là một câu hỏi cũ, nhưng tôi đã đăng một câu hỏi tương tự cách đây vài tháng ở đây: http: // stackoverflow. com/questions/18723112/canceling-method-calls-wh vi-cùng-phương pháp-được gọi là nhiều lần/18758408 # 18758408 và cung cấp triển khai có thể tái sử dụng trên GitHub có thể quan tâm – ARRG