在IntelliJ中编译错误,但不在eclipse中编译

时间:2013-12-11 13:45:30

标签: java eclipse intellij-idea compiler-errors

我正在从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中?

1 个答案:

答案 0 :(得分:2)

Java的String类是最终的,你的this.value无法继承它。您应该使用.toString()String.valueOf()来避免投射。

您会看到这种现象,因为Eclipse编译器与javac不同(默认情况下在IntelliJ中使用,但您可以更改它)。 Eclipse编译器更允许。有关详细信息,请参阅this question