2010-07-14 5 views
11

.NET에 System.Action<T> 또는 System.Func<T,U>과 같은 표준 일반 "콜백"또는 "함수/메서드"유형이 있습니까?.NET 동작에 해당하는 Java <T> 및 Func <T,U> 등

구체적으로는 T 유형의 매개 변수 하나를 사용하고 아무 것도 반환하지 않는 메서드 (예 : void)를 래핑하는 클래스가 필요합니다.

네, 그런 클래스/인터페이스를 만드는 것은 쉽지만, 표준 라이브러리 클래스가 있다면 그것을 선호합니다.

답변

12

저는 표준 라이브러리에 이런 내용이 없다고 생각합니다. (작성 당시, 2010). Guice의 Provider<T> 및 구아바의 Function<F, T>, Supplier<T>Predicate<T>과 같은 라이브러리가 있습니다. 이미 라이브러리를 사용하고 있다면이 라이브러리가 제공하는 기능을 살펴볼 수 있습니다.

(편집 :. 언급 한 바와 같이, 그 물건을 반환 인터페이스입니다 - Func<T, U>하지만 Action<T> 유사하지너무 유사)이

+0

이 중 어느 것이 동등한가? 제안한 각 항목은 가치를 반환 할 것으로 예상됩니다. 내 [관련 질문] (http://stackoverflow.com/q/9007008/403455)을 참조하십시오. –

+0

@glenviewjeff : 그들은'Action '과 비슷하지 않지만'Func '와 비슷합니다. –

+0

@glenviewjeff : 반환 할 필요가 없으면 언제나 [java.lang.Void] (http://docs.oracle.com/javase/7/docs/api/java/lang/Void.html)를 사용할 수 있습니다. 값. "표준화 된"'Func '이 아무것도 아닌 것보다 낫습니다. –

2

자바 표준 라이브러리는 이러한 클래스를 제공하지 않습니다.

라이브러리는 fj.F1<T, fj.Unit>을 제공하며 이는 .NET의 System.Action<T>과 기본적으로 동일합니다.

관련 문제