java供应商在任何情况下都会返回相同的对象吗

java供应商在任何情况下都会返回相同的对象吗,java,Java,每当需要对象时,我都使用供应商创建列表实例 Supplier<Optional> supplier = ()->Optional.of(new LinkedList<>()); Supplier=()->可选的.of(新LinkedList()); 上述供应商多次从RecursiveTask.compute调用。在RecursiveTask.compute上,一旦调用supplier.get(),就会向其中添加一些对象 Optional<LinkedLis

每当需要对象时,我都使用供应商创建列表实例

Supplier<Optional> supplier = ()->Optional.of(new LinkedList<>());
Supplier=()->可选的.of(新LinkedList());
上述供应商多次从RecursiveTask.compute调用。在RecursiveTask.compute上,一旦调用supplier.get(),就会向其中添加一些对象

Optional<LinkedList> optList = supplier.get();
optList.get().add("<>");
可选optList=supplier.get();
optList.get().add(“”);
我相信supplier.get()总是调用可选的.of(new LinkedList())并在每次调用时返回新对象,就像正常的函数接口一样。它是否有可能为多个调用返回同一实例

我对java文档()中提到的以下语句感到有点困惑

不要求每次都返回新的或不同的结果 调用供应商的时间


您引用的文档中说,每次返回一个不同的值不是必需的。。。但是您显示的供应商每次都返回一个不同的值


是的,调用
supplier.get()
将在每次调用时执行相关代码,但它是否每次返回一个新实例或重用相同的结果取决于该代码。

您引用的文档说,不要求每次都返回一个不同的值。。。但是您显示的供应商每次都返回一个不同的值


是的,调用
supplier.get()
将在每次调用时执行相关代码,但它是否每次返回一个新实例或重复使用相同的结果取决于该代码。

鉴于您当前的实现,每次
supplier
get()都将返回一个新的
可选
实例
方法被调用

如果希望每次调用
get()
时都返回相同的实例,则应创建一个实例,并让
供应商返回该实例:

Optional<LinkedList<SomeThing>> instance = Optional.of(new LinkedList<SomeThing>());
Supplier<Optional> supplier = () -> instance;
Optional instance=Optional.of(new LinkedList());
供应商=()->实例;
鉴于您引用的文档,这将是一个有效的实现


当然,我不确定您为什么需要在这里用一个
可选的
来包装
链接列表
,因为这个
供应商
从来不会生成一个空的
可选的
鉴于您当前的实现,每次
供应商的
get()都会返回一个新的
可选的
实例
方法被调用

如果希望每次调用
get()
时都返回相同的实例,则应创建一个实例,并让
供应商返回该实例:

Optional<LinkedList<SomeThing>> instance = Optional.of(new LinkedList<SomeThing>());
Supplier<Optional> supplier = () -> instance;
Optional instance=Optional.of(new LinkedList());
供应商=()->实例;
鉴于您引用的文档,这将是一个有效的实现


当然,我不知道为什么需要在这里用
可选的
来包装
链接列表
,因为这个
供应商
从来不会生成空的
可选的
我认为java文档中的语句说,供应商的实现并不需要每次都返回不同的对象。但是,在您的情况下,您每次给供应商打电话时都会返回一个新的LinkedList。我认为java文档中的声明说,供应商的实现不需要每次都返回不同的对象。但是,在您的情况下,每次给供应商打电话时,您都会返回一个新的LinkedList。