用于处理泛型参数的JDK接口

Boh*_*ian 14 java generics interface java-7

是否存在JDK的界面,如下所示:

public interface Callback<T> {
    public void process(T t);
}
Run Code Online (Sandbox Code Playgroud)

要求是实现运行代码的回调,但不返回任何内容.

我可以编写自己的(通过简单地使用这里的示例代码),但我想使用现有的轮子,如果存在,而不是重新发明一个.

irr*_*ble 10

所以你需要类似的东西

interface Foo<T>
    bar(T)
Run Code Online (Sandbox Code Playgroud)

JDK中只有3个接口就是这样

java.nio.file.DirectoryStream$Filter<T>

    boolean accept(T entry) throws IOException;


java.lang.Comparable<T>

    int compareTo(T o);


javax.xml.ws.Provider<T>

    T invoke(T request);
Run Code Online (Sandbox Code Playgroud)

显然你不会喜欢他们.

Async IO有一个回调接口,但它有点复杂:

java.nio.channels.CompletionHandler<V,A>

    void completed(V result, A attachment);

    void failed(Throwable exc, A attachment);
Run Code Online (Sandbox Code Playgroud)


use*_*751 1

在 Java 8 中,该类java.util.function.Consumer完全按照您的要求执行

它有一个非默认方法,该方法接受泛型类型并且不返回任何内容:

public interface Consumer<T> {

    void accept(T t);

    default Consumer<T> andThen(Consumer<? super T> after) {
        // ...
    }
}        
Run Code Online (Sandbox Code Playgroud)