带类型参数的接口有什么用?它们的真正用途是什么?我的理解是否正确。假设我有这个界面
public interface Moveable <Person>{
void move(double x, double z);
}
这是否意味着只有类型为 Person 的对象才能使用 / 实现 this?
这不是典型的模式,在您的情况下,类型参数没有做任何事情。这是一个更好的例子。
public interface Movable<T> {
T move();
}
现在您的代码将返回实现者指定的类型,而不是仅仅说 move 总是返回对象或其他更通用的类。
编辑:
public MyMover implements Movable<Truck> {
public Truck move(){
return new Truck();
}
}
您不能真正将接口的实现者限制为某些类型。如果你愿意,你可以通过包来限制它。也许抽象类更适合你。
Does this mean that only objects that are Type Person can use implement this?
不,不完全是,在接口中使用泛型就像在普通类中使用一样。它指定接口将包含/操作的对象类型。
想想你如何声明一个ArrayList
. 您需要指定ArrayList
将包含哪种类型的对象,因为它以不同方式处理每种类型的对象。
在您的接口声明中,您说实现此接口的类将仅保存/操作类型的对象Person
。
有关泛型的更多信息,请查看此链接: