java - 如何初始化需要复杂计算的最终变量?

标签 java variables methods constructor final

我是 Java 的初学者。我想知道,如果变量在初始化之前需要复杂的计算,但一旦初始化,它就不会改变,该怎么办。我想使变量成为最终变量,但与其在构造函​​数中初始化它,不如在方法中初始化它,以便以后可以重用该方法。有什么办法可以做到这一点?

除了上述所有要求之外,如果我只想在需要时才计算此变量的值(因为计算它的计算成本很高),会发生什么情况?遇到这种情况怎么办?

最佳答案

您可以尝试来自 Guava 的 memoize 供应商:

Supplier<T> something = Suppliers.memoize(new Supplier<T>() {
    // heavy computation
    return result.
});

something.get();
something.get(); // second call will return the memoized object.

关于java - 如何初始化需要复杂计算的最终变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38175847/

相关文章:

java - 设置 JTextField 宽度以匹配 JPanel 的宽度

Java - 什么是明显没有签名的方法

Java 类型转换问题

java - 在 Active Directory LDAP 中添加具有密码的用户

java - Hive、JDBC、TTransportException : SASL authentication not complete

php - 如何将 PHP 变量的值传递给 Javascript 代码?

javascript - 如何使用 for 循环调用对象内所有方法内的所有函数?

java - 访问 .jar API 函数 - 错误 : Cannot make a static reference to the non-static method

string - 使用 PowerShell 4.0 从变量输入中删除空格

c - 简单变量 i 和 *(&i) 之间的区别;