这个问题在这里已有答案:
- Java相当于Func和Action 6个答案
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