5

我刚刚发现,当我在 Java 中执行此操作时:

for(int x = 0; x < 3; x++)
{
    String bla = "bla";
    bla += x.toString();
}

它(在这种情况下是 Netbeans)会告诉我我不能以这种方式取消引用我的 x 整数(就像我在 C# 中那样)。

这是为什么?

4

6 回答 6

8

Java中的原始类型不是对象,因此您需要使用其他方法来做到这一点,在这种情况下:

Integer.toString(x);
于 2011-08-22T14:18:46.617 回答
7

int 是原始类型,而不是 Object,因此没有 toString() 方法。

但是你可以这样做:

String bla = "bla" + x;
于 2011-08-22T14:18:53.900 回答
5

int不是对象,而是原始类型。因此,您不能从int. 如果您将其定义为Integer,则错误消息将消失。不过,你真的可以直接去掉toString,因为xString自动强制转换成 a 。

于 2011-08-22T14:19:08.050 回答
4

x 不是 an Integer,它是 an int,并且int是原始类型,所以它没有toString

于 2011-08-22T14:18:31.030 回答
4

您声明x的类型int是原始值,而不是对象。基元不能有toString()调用它们的方法(如 )。Integer如果您想调用,您可以使用原始包装器toString(),或者您可以简单地删除对 的调用toString(),Java 对字符串和原始数据的特殊处理将自行处理。

于 2011-08-22T14:20:37.407 回答
3

在 java 中,原始类型(布尔 int、short、char、long、float、double)不是对象。

然而,它们确实具有包装器类型(整数、字符、...),它们具有 1)实用静态函数和 2)其实例可以包装原始值。

于 2011-08-22T14:20:33.843 回答