java Number & Comparable

来源:9-3 实现Dijkstra算法

芒果和芒果柠檬

2018-08-08

波波老师,注意到java里面weight泛型的写法是 Weight extends <Number & Comparable>

但是如果我交换顺序 <Weight extends Comparable & Number> 就会报错,看不懂原因 网上搜索也不知道怎么描述 特此来请教... 这是为什么吗

写回答

1回答

liuyubobobo

2018-08-09

因为Number是类,Comparable是接口。限定泛型的类型,如果泛型是某个类的子类,则这个父类必须写在前面。语法规定。。。:)


关于这个语法,相应的Java官方文档可以参考这里:https://docs.oracle.com/javase/tutorial/java/generics/bounded.html


注意Multiple Bounds部分的叙述:

If one of the bounds is a class, it must be specified first. 

For example:
Class A { /* ... */ }
interface B { /* ... */ }
interface C { /* ... */ }

class D <T extends A & B & C> { /* ... */ }

If bound A is not specified first, you get a compile-time error:

class D <T extends B & A & C> { /* ... */ }  // compile-time error


加油!:)

2
1
芒果和芒果柠檬
波波老师的回复速度!赞!感谢!
2018-08-09
共1条回复

算法与数据结构(C++版) 面试/评级的算法复习技能包

课程专为:短时间内应对面试、升职测评等艰巨任务打造

11187 学习 · 1614 问题

查看课程