[英]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.