我的印象是Foo::new只是()->newFoo()的语法糖并且它们的行为应该相同。然而,情况似乎并非如此。这是背景:对于Java-8,我使用了一个第三方库,它有一个Optionalfoo而这条违规行:foo.orElseGet(JCacheTimeZoneCache::new);JCacheTimeZoneCache在其构造函数中使用了可选JCache库中的某些内容,而我的类路径中没有这些内容。使用调试器,我验证了foo不为空,因此它实际上不应该实例化JCacheTimeZoneCache实例,因此缺少的JCache库不应该成为问题。然而,它确实因堆栈跟踪提示缺少JCache库而爆
我的印象是Foo::new只是()->newFoo()的语法糖并且它们的行为应该相同。然而,情况似乎并非如此。这是背景:对于Java-8,我使用了一个第三方库,它有一个Optionalfoo而这条违规行:foo.orElseGet(JCacheTimeZoneCache::new);JCacheTimeZoneCache在其构造函数中使用了可选JCache库中的某些内容,而我的类路径中没有这些内容。使用调试器,我验证了foo不为空,因此它实际上不应该实例化JCacheTimeZoneCache实例,因此缺少的JCache库不应该成为问题。然而,它确实因堆栈跟踪提示缺少JCache库而爆