我对 java 中的这两种类型的错误消息感到困惑。
对于不兼容的类型,可能会出现在以下场景中
if(integer=="String")
在什么情况下我会在java中得到一个无与伦比的类型?这两者之间的主要区别是什么?
我对 java 中的这两种类型的错误消息感到困惑。
对于不兼容的类型,可能会出现在以下场景中
if(integer=="String")
在什么情况下我会在java中得到一个无与伦比的类型?这两者之间的主要区别是什么?
不兼容类型错误
在尝试分配不同类型时发生
In-Comparable 类型错误
在尝试比较两种不同类型时发生
无法比较意味着您试图比较两种不合法的不同类型。一个例子:
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 数据类型不兼容。
简而言之,不兼容是指无法进行特定操作的数据类型,而无法比较是指无法比较的一对数据类型。
当您尝试分配两种不兼容的类型时,会发生不兼容的类型错误。
当您尝试比较两种不同的类型时,会发生无法比较的类型错误。