1
我有下面的代码,它完美的编译与maven,但Intellij不断给我错误说Inconvertible types can not cast 'K' to java.lang.Long
。Java泛型 - 不能投K到长
public class BPlusTree<K extends Comparable<K>, T> {
public void debug(K time) {
Long l = (Long) time;
}
}
当我从类定义中移除extends Comparable<K>
部分的IntelliJ停止给这个错误。这里发生了什么?我知道这个铸造可以抛出一个运行时间ClassCastException
但为什么编译错误?
当你写什么你实际上意味着'K延伸可比'? –
可能不是编译错误。 IntelliJ可能只是让您知道您的代码已损坏。为什么错误消失时,你删除约束,我不知道。 – Carcigenicate
@ Mike'Pomax'Kamermans我想确保我的'K'具有可比性(它提供了compareTo方法)? – Nullpointer