2017-10-05 34 views
1

我有下面的代码,它完美的编译与maven,但Intellij不断给我错误说Inconvertible types can not cast 'K' to java.lang.LongJava泛型 - 不能投K到长

public class BPlusTree<K extends Comparable<K>, T> { 

    public void debug(K time) { 
     Long l = (Long) time; 
    } 
} 

当我从类定义中移除extends Comparable<K>部分的IntelliJ停止给这个错误。这里发生了什么?我知道这个铸造可以抛​​出一个运行时间ClassCastException但为什么编译错误?

+0

当你写什么你实际上意味着'K延伸可比'? –

+0

可能不是编译错误。 IntelliJ可能只是让您知道您的代码已损坏。为什么错误消失时,你删除约束,我不知道。 – Carcigenicate

+0

@ Mike'Pomax'Kamermans我想确保我的'K'具有可比性(它提供了compareTo方法)? – Nullpointer

回答