- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
在 Java 中实现惰性供应商的正确范例或实用程序类(似乎找不到预先存在的类)是什么?
我想要一些东西来处理一次计算/稍后缓存行为,并允许我独立指定计算行为。我知道这可能有错误,但它具有正确的语义:
abstract public class LazySupplier<T> implements Supplier<T>
{
private volatile T t;
final private Object lock = new Object();
final public T get() {
if (t == null)
{
synchronized(lock)
{
if (t == null)
t = compute();
}
}
return t;
}
abstract protected T compute();
}
最佳答案
这已在 Suppliers.memoize
中实现方法。
public static <T> Supplier<T> memoize(Supplier<T> delegate)
Returns a supplier which caches the instance retrieved during thefirst call to get() and returns that value on subsequent calls toget(). See: memoization
The returned supplier is thread-safe. The delegate's get() method willbe invoked at most once. The supplier's serialized form does notcontain the cached value, which will be recalculated when get() iscalled on the reserialized instance.
If delegate is an instance created by an earlier call to memoize, itis returned directly.
关于java - 在java中实现一个懒惰的供应商,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13663655/
嘿伙计们,我正在尝试删除最后一个 _1.jpg 如果它存在于我的表达中,但我遇到了一些麻烦 场景如下。 image_name_1.jpg(应该是image_name.jpg) image_name_1
对lazy="extra"究竟能做什么,有没有很好的解释? 我看过的所有帖子都只是重复了一个事实,即它会引用 MyObject.ItsCollection.Count进入 select count(*
我只在需要时加载 Google map 。在我重构代码之前,它的工作原理如下: function initialize_map_brand() { (...) } jQuery(document)
我编写了一个生成子集子集的函数。当我按以下方式使用子集[1..]时,它导致堆栈溢出。对于“正常”(非惰性)语言来说,这是“正常”行为。现在,我想改进我的懒惰功能。 附注我不理解懒惰(我试图理解它)所以
我正在尝试伪造对带有 out 参数的方法的调用,其中包含带有一些基本逻辑的 ReturnsLazily。理想情况下,我可以根据 ReturnsLazily 通过 AssignsOutAndRefPar
以下量词在场景、速度等方面有何不同。 ?、?? 和 ?+ 都匹配 0 或 1 次。 *, *?和*+` 都匹配0 次或更多次。 +、+? 和 ++ 都匹配1 次或多次。 ?、* 和 + 是贪心。 ??
我有以下代码: @Entity public class Foo { @OneToMany(mappedBy = "Foo", fetch = FetchType.LAZY) @Cascade
你如何使用正则表达式在 Stata 中实现非贪婪匹配?或者Stata甚至有这种能力? 我想提取出现在主题标签“#”和句点“.”之间的所有文本。 示例代码: clear set obs 3 genera
我有以下 Haskell 程序用于计算整数字符串的最大和子串: {-# LANGUAGE BangPatterns #-} {-# OPTIONS_GHC -O2 #-} import Data.Fu
我想记住如何在懒球拍中进行动态编程。解决了Euler项目的问题之一后,我开始感到奇怪: 从下面的三角形的顶部开始并移至相邻的三角形 在下面的行中,数字从上到下的最大值为23。 3 7 4
我是 Hibernate 对象持久化方面的新手。我正在读一本书,试图了解惰性设置为 false、急切和立即获取之间的区别,但我没有看到任何区别。有什么帮助吗?? 提前致谢! 最佳答案 立即获取和急切获
我正在使用Hibernate做映射。我的一个类有一组long。我想在获取此对象时将 lazy 设置为 true。如果我获取一个对象并在一段时间后使用其中的集合,会导致问题吗? 最佳答案 lazy 属性
所以我知道按需求调用只是按名称调用的内存版本。在 Martin Odersky 在 Coursera 上的 FP 类(class)的第 7.3 课(惰性评估)中,他提到如果使用按名称调用来实现 Str
语境 以下代码无限循环: (defn ex13 [] (take 5 (run* [x] (listo (lcons `a (lcons `b (lcons `c x
我刚开始学习 Haskell。下面是一些用命令式编写的代码,它实现了一个简单的服务器——它打印出 HTTP 请求 header 。除了我需要在 Haskell 中重新考虑它以使用惰性列表和高阶函数这一
据我了解,Racket 有严格的即急切的评估,但可以选择惰性评估。我对函数式语言所做的有限阅读表明,惰性求值语言通常可以更具表现力,因此为所有 Racket 程序选择惰性求值选项是否存在任何“技术”缺
这个问题在这里已经有了答案: Reference - What does this regex mean? (1 个回答) 关闭 1 年前。 最近,在网络*的某个地方,我找到了正则表达式的引用,它描
有谁知道关于以下主题的“现有技术”: 我有需要一些时间才能加载的数据。它们是各种股票的历史水平。 我想以某种方式预加载它们,以避免使用我的应用程序时出现延迟 但是,在开始时将它们分块预加载会使我的应用
我想知道的是:如果有一个基类,那么在 C++ 中每个*其他类继承自是不是一个好主意。基本上,它与 C# 的 Object 具有相同的接口(interface),即: *直接接口(interface)和
我正在尝试实现自己的 boolean 类,但无法为 && 复制 native 语义。以下人为设计的代码演示了该问题: #include > class MyBool { pub
我是一名优秀的程序员,十分优秀!