public <T> someMethod(Supplier<T> supplier) {
Objects.requireNonNull(supplier);
SupplierThrowsException<T, Throwable> supplierThrowsException = supplier::get;
return withThrowable(supplierThrowsException);
}
obj.someMethod(() -> myMethod(message))
我查了Javadoc,什么也没有得到。我想知道这是怎么回事。
我找到了这个和这个,但这并不能消除我的疑虑。如果我漏了什么请告诉我。
我100%确信MyMethod()
返回的对象的类没有实现Supplier
接口。
当然,但表达式()->myMethod(message)
会这样做。
请读15.27.4。Lambda表达式的运行时计算。
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)仅具