如何将延迟方法执行放到 Map 中?

How can I put a delayed method execution to the Map?

如何延迟 Spring 存储库方法执行到 Map? 有没有可能做这样的事情?

final Map<T, Function<T, R>> maps = new LinkedHashMap<>();
maps.put(product, productRepository::save);
maps.put(client, clientRepository::save);

productRepositoryclientRepository 有 Spring 个存储库。

你可以这样做,比如这样:

public class Sample {

    public static void main(String[] args) {
        Demo<Integer, String> demo = new Demo<>();
        demo.put(1, String::valueOf);

        System.out.println(demo.get(1).apply(15).getClass());
    }

    static class Demo<T, R> {

        private final Map<T, Function<T, R>> maps = new ConcurrentHashMap<>();

        void put(T key, Function<T, R> mapper) {
            maps.put(key, mapper);
        }

        Function<T, R> get(T key) {
            return maps.get(key);
        }
    }
}

输出:classjava.lang.String