2017-10-05 56 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

回答