java - 我认为你不能在数组中混合类型(Java)

标签 java arrays types

这更多的是理论问题。我有这段代码:

        String[] contacts = new String[10];

    for (int x = 0; x < contacts.length; x++)
    {
        contacts[x] = "Person" + x;
        System.out.println(contacts[x]);

    }

我知道数组只能有一种类型,但我已将变量 x (它是一个 int)连接到字符串的末尾并将其存储到数组中。 但是,当我尝试执行此基于 int 的数组时,它不喜欢它,这是有道理的,因为您不能在声明为保存 int 变量的数组中混合类型。 我很困惑,因为您也可以在语句末尾添加 boolean 值。

contacts[x] = "Person" + x + false

只要数组以字符串开头,您就可以摆脱它。 这是因为对象本身的字符串吗? 如果这是一个显而易见的问题,我真的很抱歉。我相信这与这个问题有关,但它并没有完全让我满意地回答Multiple type array

最佳答案

您没有向数组中添加多种类型。就像下面的语句一样,字符串后面的任何 + 运算符都会连接下一个变量,就像它被解析为对 toString() 的调用一样。 >.

contacts[x] = "Person" + x + false

所以上面的内容是一样的;

contacts[x] = "Person" + Objects.toString(x) + Objects.toString(false)

请注意,上面的变量 x 和值 false 是自动装箱的。

进一步阅读;

关于java - 我认为你不能在数组中混合类型(Java),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28235400/

相关文章:

java - 缺少 `server' JVM (Java\jre7\bin\server\jvm.dll。)

java - 如何重命名展开 ListView (android)的子ID?

c++ - 总线错误 : 10 while trying to mess with arrays

java - Java中数组的类是什么

javascript - 按数字顺序对数字数组进行合并和排序 - javascript

C 类型表示法

c - 有符号和无符号,以及 C 中位扩展的工作原理

java - JFreeChart 中的多线程

Java EE 异常 : Name java:comp is not bound in this Context

typescript - 如何从接口(interface)仅获取数组或其他类型?