当前位置: 首页 > 面试题库 >

Google Guava供应商示例

彭高畅
2023-03-14
问题内容

请通过一个适当的示例来说明接口Supplier(在Guava中)的使用。


问题答案:

Supplier接口只是一个无参数函数的抽象,该函数返回一个值…这是 获取某个对象的某些实例的一种方法
。由于它是如此通用,因此可以用于许多事物。Jared解释了Multimaps工厂如何将其用作工厂来创建Collection值的某种类型的新实例。

鉴于界面的简单性,它还可以Supplier通过将a 的行为包装在Supplier某种程度上改变其行为的行为中,对a
的行为进行非常强大的修饰。记忆化就是一个例子。我自己使用该Suppliers.memoizeWithExpiration方法是一种简单的方法,因此在给定的时间内,某些数据最多只能从服务器读取一次。

我还建议您看看Guice以及如何在其中Provider使用该接口。与Guice的工作Provider方式完全相同Supplier且至关重要。

  • Provider允许用户定义一种创建给定类的新对象的自定义方式。用户可以编写一种get()方法,该方法可以执行创建新对象所需的任何代码,因此,他们不仅限于让Guice仅使用构造函数来创建对象。在这里,他们使用它来为对象的新实例定义自定义 工厂
  • Guice允许注入Provider任何依赖项。这可能会在每次get()调用时返回一个新实例,或者可能总是返回一个实例或两者之间的任何值,具体取决于所Provider表示的绑定的范围。这还允许依赖项的“延迟实例化” …从而Provider为类提供了一种 创建对象方法, 而无需提前实际创建对象。在调用对象和实例之前,无需创建对象的实例get()
  • 如上所述,Providers是Guice进行范围界定的基础。如果您看一下Scope接口,您会注意到它的单个方法Provider<T> scope(Key<T> key, Provider<T> unscoped)是根据Providers 定义的。此方法采用 某种 方法 创建一个对象的新实例Provider<T> unscoped),并Provider<T>根据适用范围定义的任何策略返回一个,这可能会返回该对象的某些缓存实例,而不是创建一个新的实例。默认NO_SCOPE范围仅通过unscoped提供程序传递,这意味着每次都会创建一个新实例。该SINGLETON范围缓存第一次调用的结果unscoped.get()然后返回该单个实例,确保依赖于单例作用域对象的所有内容都获得对该单个对象的引用。注意,Provider通过返回的SINGLETON范围的scope方法做 本质上是一回事 作为Supplier由归国Suppliers.memoize(虽然这是一个比较复杂一点)。


 类似资料:
  • Oracle 的 Java SE 的 JSSE 实现是包含了一个名为 SunJSSE 的供应商,通过 JCA 来预装和预注册。这个供应商提供以下加密服务: SSL 3.0 和 TLS 1.0 安全协议的实现 最常见 SSL 和 TLS 密码套件的实现,其中包括认证、密钥协议、加密和完整性保护 一个基于 x.509 的密钥管理器的实现,用于从标准的 JCA keystore 中选择合适的认证密钥 一

  • 查询供应商列表 接口描述 获取所有供应商列表 URL /provider HTTP Method GET 请求参数 无 返回参数 返回参数 是否必须 类型 描述 providerId true String 供应商编号 providerName true String 供应商名称 HTTP请求示例 GET /provider HTTP/1.1 Host: api.miot.10046

  • 问题内容: 我已经找到了尽可能多的文档和StackOverflow文章,但是使用Go 1.6中的新供应商功能无法导入。 这是我与Goji一起测试的示例项目。目录结构如下: 并且,项目中的唯一文件是这样的: 我的环境变量如下: 我尝试了最简单的构建命令,但是没有运气: 我也尝试用: …无济于事。我完全想念什么吗?任何建议表示赞赏。 问题答案: 我建议您阅读https://golang.org/doc

  • 问题内容: 因此,我完成了对应用程序进行编码以旋转TIFF图像的过程,这需要JAI操纵TIFF。 当在Eclipse下工作时,它工作正常,但是当我执行java -jar Push时,每当我为该库构建一个胖jar然后创建一个实现该胖jar的时候(根据http://fjep.sourceforge.net/fjeptutorial.html),它就可以正常工作。 jar \ path \ to \ d

  • 问题内容: 3张表:供应商(sid,sname,地址),零件(pid,pname,颜色),目录(sid,pid,成本) 找到所有供应每个零件的供应商的答案是: 有人可以向我解释这个答案吗?我只是迷路了! 我听说它的解释是“寻找供应商,使他们不存在不出售的零件”,但是我在努力寻找如何 完成了。 所以如果我有一个 目录表 詹姆斯| 锤子 詹姆斯| 砧 詹姆斯| 扳手 亨利| 锤子 乐华| 砧 零件表