如何将延迟方法执行放到 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);
productRepository
和 clientRepository
有 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
如何延迟 Spring 存储库方法执行到 Map? 有没有可能做这样的事情?
final Map<T, Function<T, R>> maps = new LinkedHashMap<>();
maps.put(product, productRepository::save);
maps.put(client, clientRepository::save);
productRepository
和 clientRepository
有 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