问题 Java等效的.NET Action 和Func 等[复制]


这个问题在这里已有答案:


1946
2017-07-14 08:47


起源



答案:


我不相信标准库中有这样的东西,没有(在撰写本文时,2010年)。其他图书馆也有它们 - 像Guice这样的东西 Provider<T> 和番石榴 Function<F, T>Supplier<T> 和 Predicate<T>...所以如果你已经使用了库,你可能想要研究它们在这个方向上提供的内容。

(编辑:如上所述,这些是返回东西的接口 - 非常类似于 Func<T, U> 但  如同 Action<T>。)


12
2017-07-14 08:49



这些中的任何一个如何相同?您建议的每个项目都应返回一个值。看我的 相关问题。 - Jeff Axelrod
@glenviewjeff:他们不相似 Action<T>,但它们类似于 Func<T, U>。 - Jon Skeet
@glenviewjeff:你可以随时使用 java.lang.Void的 如果你不需要返回值。一个“标准化” Func<T,U> imo,总比没有好。 - Christian Klauser
这就是我喜欢C#而不是Java的原因。 - Sachin Kainth
@ZenLulz:的确,现在确实如此。我不会修改7年前的所有答案,但我担心...... - Jon Skeet


答案:


我不相信标准库中有这样的东西,没有(在撰写本文时,2010年)。其他图书馆也有它们 - 像Guice这样的东西 Provider<T> 和番石榴 Function<F, T>Supplier<T> 和 Predicate<T>...所以如果你已经使用了库,你可能想要研究它们在这个方向上提供的内容。

(编辑:如上所述,这些是返回东西的接口 - 非常类似于 Func<T, U> 但  如同 Action<T>。)


12
2017-07-14 08:49



这些中的任何一个如何相同?您建议的每个项目都应返回一个值。看我的 相关问题。 - Jeff Axelrod
@glenviewjeff:他们不相似 Action<T>,但它们类似于 Func<T, U>。 - Jon Skeet
@glenviewjeff:你可以随时使用 java.lang.Void的 如果你不需要返回值。一个“标准化” Func<T,U> imo,总比没有好。 - Christian Klauser
这就是我喜欢C#而不是Java的原因。 - Sachin Kainth
@ZenLulz:的确,现在确实如此。我不会修改7年前的所有答案,但我担心...... - Jon Skeet


Java标准库不提供任何此类。

您可以使用 功能Java 图书馆提供 fj.F1<T, fj.Unit> 这基本上相当于 System.Action<T> 来自.NET。


2
2017-07-14 09:44