不兼容的vs无与伦比的类型

时间:2013-08-11 04:32:46

标签: java compiler-errors incompatibletypeerror

我对java中的这两种错误消息感到困惑。

对于不兼容的类型,可能会出现在以下场景中

if(integer=="String")

在什么情况下我会在java中获得无与伦比的类型? 这两者之间的主要区别是什么?

3 个答案:

答案 0 :(得分:3)

兼容类型错误
尝试使用其他类型

进行分配时发生

In-Comparable type error
在尝试比较两种不同类型

时发生

答案 1 :(得分:1)

无法比较意味着您正在尝试比较两种不合法的不同类型。一个例子:

Integer i = new Integer(8);
if( i == "Foo" ){}

它将显示无法比较的类型:java.lang.Integer和java.lang.String ,因为Java编译器无法比较两种不同的类型(在本例中为Integer和String)。

现在不兼容意味着编译器尝试对变量执行操作,并且该变量与操作不兼容。一个例子:

public static String foo(int a){
    return a;
}

显然,如果没有适当的强制转换,你不能将一个int值作为String返回,在这种情况下,返回操作需要一个String,并且它一直是赋予和int,所以返回操作与int数据类型不兼容。

简而言之,不兼容是指无法进行特定操作且无法比拟的数据类型是指无法比较的一对数据类型。

答案 2 :(得分:0)

当您尝试执行两种不兼容类型的分配时,会发生无法比较的类型错误。

当您尝试比较两种不同类型时,会发生无法比较的类型错误。