为了账号安全,请及时绑定邮箱和手机立即绑定

如何在语法上正确地实现 type<K extends Comparable<K>, V> 的接口?

如何在语法上正确地实现 type<K extends Comparable<K>, V> 的接口?

手掌心 2021-12-10 15:36:10
K 和 V 保证是字符串或整数。我已经多次使用泛型,但从未使用过<K extends Comparable<K>, V>,所以我现在很挣扎。
查看完整描述

1 回答

?
呼唤远方

TA贡献1856条经验 获得超11个赞

当你实现一个泛型接口时,你应该总是指定类型参数。您可以不指定它们而逃脱,但是您正在使用原始类型,而您不应该使用原始类型。


当你做指定它们,你还需要一个有效的方式来指定。


第一个选项是错误的,原因有两个:


当你指定类型参数时,你永远不会重写那个参数的边界,所以写K extends Comparable<K>是错误的

K并且V没有在任何地方定义。

第二个选项是错误的,因为您重写了K. 在第一选择此选项的不同K和V 在这里定义-K并且V是的类型参数Son。


第三个选项编译,但它使用原始类型,这首先违背了使用泛型的目的。


理想情况下,您会编写如下内容:


class Son<K extends Comparable<K>, V> implements Father<K, V> {


}

注意:我怎么没改写界限,定义K和V作为类型参数Son。


或者,指定一个具体类型:


class Son implements Father<String, Integer> {


}


查看完整回答
反对 回复 2021-12-10
  • 1 回答
  • 0 关注
  • 232 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信