我刚刚发现,当我在 Java 中执行此操作时:
for(int x = 0; x < 3; x++)
{
String bla = "bla";
bla += x.toString();
}
它(在这种情况下是 Netbeans)会告诉我我不能以这种方式取消引用我的 x 整数(就像我在 C# 中那样)。
这是为什么?
我刚刚发现,当我在 Java 中执行此操作时:
for(int x = 0; x < 3; x++)
{
String bla = "bla";
bla += x.toString();
}
它(在这种情况下是 Netbeans)会告诉我我不能以这种方式取消引用我的 x 整数(就像我在 C# 中那样)。
这是为什么?
Java中的原始类型不是对象,因此您需要使用其他方法来做到这一点,在这种情况下:
Integer.toString(x);
int 是原始类型,而不是 Object,因此没有 toString() 方法。
但是你可以这样做:
String bla = "bla" + x;
int
不是对象,而是原始类型。因此,您不能从int
. 如果您将其定义为Integer
,则错误消息将消失。不过,你真的可以直接去掉toString
,因为x
会String
自动强制转换成 a 。
x 不是 an Integer
,它是 an int
,并且int
是原始类型,所以它没有toString
。
您声明x
的类型int
是原始值,而不是对象。基元不能有toString()
调用它们的方法(如 )。Integer
如果您想调用,您可以使用原始包装器toString()
,或者您可以简单地删除对 的调用toString()
,Java 对字符串和原始数据的特殊处理将自行处理。
在 java 中,原始类型(布尔 int、short、char、long、float、double)不是对象。
然而,它们确实具有包装器类型(整数、字符、...),它们具有 1)实用静态函数和 2)其实例可以包装原始值。