0

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

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

if(integer=="String")

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

4

3 回答 3

3

不兼容类型错误
在尝试分配不同类型时发生

In-Comparable 类型错误
在尝试比较两种不同类型时发生

于 2013-08-11T04:35:50.377 回答
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 数据类型不兼容。

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

于 2013-08-11T05:12:02.803 回答
0

当您尝试分配两种不兼容的类型时,会发生不兼容的类型错误。

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

于 2013-08-11T04:35:34.710 回答