当前位置: 首页 > 知识库问答 >
问题:

供应商接口中的get()在哪里实现?

袁运锋
2023-03-14
public <T> someMethod(Supplier<T> supplier) {
        Objects.requireNonNull(supplier);
        SupplierThrowsException<T, Throwable> supplierThrowsException = supplier::get;
        return withThrowable(supplierThrowsException);
}
obj.someMethod(() -> myMethod(message))

我查了Javadoc,什么也没有得到。我想知道这是怎么回事。

我找到了这个和这个,但这并不能消除我的疑虑。如果我漏了什么请告诉我。

共有1个答案

禹德水
2023-03-14

我100%确信MyMethod()返回的对象的类没有实现Supplier接口。

当然,但表达式()->myMethod(message)会这样做。

请读15.27.4。Lambda表达式的运行时计算。

    null

get()的实现在哪里?

你已经在lambda体内提供了它。

() -> myMethod(message) 

(这是一个语句表达式,是构造lambda体的较短形式)

() -> {
    return myMethod();
}
 类似资料:
  • 问题内容: 我正在使用来自包java.sql的接口连接 实际上,我虽然是一个Class,但是当我尝试查看源代码时却发现它是一个Interface。 在Connection接口的源代码中,每种方法只有一行,没有任何实现!! 是什么让这个界面正常工作? 要连接的数据库:MySql 连接源代码页:http : //www.docjar.com/html/api/java/sql/Connection.j

  • 这段代码过滤调用流,然后打印所有大于10的元素。谓词中的测试方法为我们做到了这一点。 但是filter()方法的实际实现在哪里呢?该方法返回的“流”大于10?我不明白。 这个问题在某种程度上也适用于forEach()方法。它如何在流中迭代?因为filter()和forEach()方法在接口流中是抽象的,没有实现。

  • 以下代码 对于供应商get方法的定义 get方法应该返回T,但是构造函数没有返回类型,那么为什么String::New可以分配给供应商 呢?

  • 和包中的和函数接口分别具有以下签名- 是否有一些特定的用例,其中每一个都比另一个更适合?

  • 问题内容: 放置注释的最佳做法是什么?我应该注释接口方法还是实现? 问题答案: 好问题。我一直把它放在实现中。也许是因为它是实现细节,而不是抽象。 你可能希望不同的实现具有不同的事务行为。 El Guapo指出,除此之外,在接口上使用代理策略还可能引发更多问题。

  • 问题内容: 我正在使用Spring开发应用程序。我需要使用注释。我和这样。我对应该在哪里保留注释感到困惑。 我应该用注释接口或实现吗?这两种方法有什么区别? 问题答案: 我从不将(或…)放在界面上,因为这会使界面无用。让我解释一下原因。 声明1:如果你有一个接口,那么你想将该接口用于注入点类型。 权利要求2:接口的目的是它定义可以由几种实现方式实现的协定。在另一侧,你有注射点()。(IMHO)仅具