簡體   English   中英

在IntelliJ中編譯錯誤,但不在eclipse中編譯

[英]Compile errors in IntelliJ but not in eclipse

我正在從Eclipse切換到IntelliJ IDEA,我在IntelliJ中遇到編譯錯誤,但在eclipse中卻沒有。

public class TestClass<K, V extends Comparable<V>> {

private K key;
private V value;

public void someMethod() {
    if (this.value instanceof String) {
        String stringValue = (String) this.value;
        // some code
    }
}
}

(不要責怪我的代碼,這是遺留代碼而不是我的代碼)

在eclipse中一切都很好,在intellij中它被標記為一個錯誤,表示“不可轉換的類型,不能將V轉換為java.lang.String”。

兩者都使用我的標准MacOS X JDK(1.6.0_65)。

它不僅僅是String,它適用於所有類型/類(我還有其他一些類型)

為什么我在intellij中遇到這些錯誤但在eclipse中卻沒有?

Java的String類是final,沒有辦法讓你的this.value繼承它。 您應該使用.toString()String.valueOf()來避免強制轉換。

您會看到這種現象,因為Eclipse編譯器與javac不同(默認情況下在IntelliJ中使用,但您可以更改它)。 Eclipse編譯器更允許。 有關更多信息,請參閱此問題

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM