带参数的Java 11内联供应商

带参数的Java 11内联供应商,java,Java,如何更改此方法: private Supplier<String> createMySupplier(Long myId) { return new CachingSupplier<>( () -> retrieveName(myId) ); } private Supplier createMySupplier(长myId){ 返回新的CachingSupplier( ()->检索名称

如何更改此方法:

   private Supplier<String> createMySupplier(Long myId) {
        return new CachingSupplier<>(
                () -> retrieveName(myId)
        );
    }
private Supplier createMySupplier(长myId){
返回新的CachingSupplier(
()->检索名称(myId)
);
}
要内联实现,那么它将成为类中的属性,而不是现在的方法

大概是这样的:

private Supplier<String> mySupplier = () -> new CachingSupplier<>(
                    () -> retrieveName(myId)
            );
private Supplier mySupplier=()->new caching Supplier(
()->检索名称(myId)
);

您似乎需要一个lambda,该lambda根据参数生成供应商。为此,您需要:


您可能需要将
Long
更改为
Long
。但我猜您实际上无法使用空ID检索名称,对吗?

内联实现?什么意思?什么是内联实现?“内联”指的是句法模式。。然而,实现是一个词,来自完全不同的世界但它使其成为
字符串
的工厂,而不是
供应商的工厂
,因为供应商是无参数的,并且您的代码需要
长myId
,所以您想要的东西毫无意义。
private LongFunction<Supplier<String>> supplierGenerator =
    myId -> new CachingSupplier<>(() -> retrieveName(myId));
void doStuff() {
    LongFunction<Supplier<String>> supplierGenerator = this::createMySupplier;
    // ...
}
void doStuff() {
    callMethodThatNeedsSupplierGenerator(this::createMySupplier);
}