java @FunctionalInterface

public class Worker {
    private String doWork(String job) {
        return "Job " + job + " done.";
    }

    private void handleWork(Handler<String, String> theFuncHandler) {
        System.out.println(theFuncHandler.handle("job-" + System.currentTimeMillis()));
    }

    public static void main(String[] args) {
        Worker worker = new Worker();
        worker.handleWork(worker::doWork);
    }

    @FunctionalInterface
    private interface Handler<T, R> {
        T handle(R r);
    }
}

只要是符合返回值为String参数为String的方法(例如:doWork方法)都可以作为Handler<String, String>类型的参数传入handleWork方法中进行执行

原文地址:https://www.cnblogs.com/xiayudashan/p/10109842.html