Java 接口类型参数是否扩展接口?
我在阅读代码库时遇到了这种结构,我无法理解它的作用/代表:Java 接口类型参数是否扩展接口?,java,oop,interface,type-bounds,Java,Oop,Interface,Type Bounds,我在阅读代码库时遇到了这种结构,我无法理解它的作用/代表: 公共接口MyInterface{} 我不明白类型绑定在这里是做什么的——它看起来几乎是递归的?在这种情况下,对T的真正限制是什么?这意味着实现接口的任何类都必须将T指定为它们自己: class MyClass实现MyInterface{} // │ ↑ // └──────────────────────────────┘ 这里T是MyClass,它扩
公共接口MyInterface{}
我不明白类型绑定在这里是做什么的——它看起来几乎是递归的?在这种情况下,对
T
的真正限制是什么?这意味着实现接口的任何类都必须将T
指定为它们自己:
class MyClass实现MyInterface{}
// │ ↑
// └──────────────────────────────┘
这里
T
是MyClass
,它扩展了MyInterface
,因此T扩展了MyInterface
的范围就满足了。这意味着实现接口的任何类都必须将T
指定为它们自己:
class MyClass实现MyInterface{}
// │ ↑
// └──────────────────────────────┘
这里的
T
是MyClass
,它扩展了MyInterface
,因此T扩展了MyInterface
的范围就满足了。这是否回答了您的问题?这回答了你的问题吗?所以基本上任何接受/给出T的方法实际上是接受/给出“这个类”?例如:T someMethod(…)实际上说“这个方法接受一些参数并给出一些实现类的实例?我想这比简单地说interface-MyInterface{MyInterface-foo(…)}要强大得多。”
因为这可能是MyInterface@NimrodSadeh不,您不能保证T
是this
对象的类型。例如class Foo实现MyInterface{}
和class Bar实现MyInterface{}
是有效的,即使Bar
的T
不是一种Bar
类型。因此,基本上任何接受/给出T的方法实际上都是接受/给出“this class”?例如:T someMethod(…)实际上说“this method接受一些参数并给出实现类的一些实例?”?我想这比简单地说interface-MyInterface{MyInterface-foo(…)}
强,因为这可能是MyInterface@NimrodSadeh否,您不能保证T
是此
对象的类型。例如,class Foo实现MyInterface{}
和class Bar实现MyInterface{}
是有效的,即使Bar的T
不是Bar
类型。