带有类型参数的接口有什么用?

use*_*206 3 java generics interface

带有类型参数的接口有什么用?它们真正用于什么?我的理解是正确的.假设我有这个界面

public interface Moveable <Person>{
    void move(double x, double z);
}
Run Code Online (Sandbox Code Playgroud)

这是否意味着只有Type Person的对象可以使用/实现它?

jja*_*man 7

这不是典型的模式,在您的情况下,类型参数没有做任何事情.这是一个更好的例子.

public interface Movable<T> {
    T move();
}
Run Code Online (Sandbox Code Playgroud)

现在你的代码将返回实现者指定的类型而不是你只是说移动总是返回对象或其他更通用的类.

编辑:

public MyMover implements Movable<Truck> {
    public Truck move(){
        return new Truck();
    }
}
Run Code Online (Sandbox Code Playgroud)

您无法将界面的实施者限制为某些类型.如果需要,您可以按包来限制它.也许一个抽象类对你来说会更好.