Java - 扩展自身的接口

use*_*658 10 java extends interface

我已经使用这个网站大约6个月了,是时候问我的第一个问题了,因为我找不到答案,至少不是我能理解的答案!

在这段代码中,为什么这个接口会自行扩展?

public interface PositionedVertex<V extends PositionedVertex<V>> {

/**
 * @return Position for node data.
 */
public Point getPosition();
}
Run Code Online (Sandbox Code Playgroud)

这段代码不一样吗?:

public interface PositionedVertex<V> {

/**
 * @return Position for node data.
 */
public Point getPosition();
}
Run Code Online (Sandbox Code Playgroud)

提前致谢!

rge*_*man 11

接口没有扩展自己.该<V extends PositionedVertex<V>>是与您的界面相关的通用型绑定.它只是意味着实现此接口的任何类的泛型类型参数本身必须是a PositionedVertex.


Roh*_*ain 4

在第一种情况下,您已将泛型类型参数限制为其自身的子类型interface,而在第二种情况下,您可以将任何类型作为泛型类型参数。因此,它们可能是不同的声明。

例如,您可以定义如下引用:

PositionedVertex<String>
Run Code Online (Sandbox Code Playgroud)

2nd interface type,但不为1st one