gpt4 book ai didi

java - 什么是 "String..."

转载 作者:行者123 更新时间:2023-11-29 10:03:51 24 4
gpt4 key购买 nike

我想知道String...是什么关键字是。据我了解,它是 String[] 的化名。 .但是,它的行为似乎并不相同。例如,我有一个服务器将发送字符串 "<PING>\n"给客户。客户端使用以下方法处理此消息:

@Override
protected void onProgressUpdate(String... values) {
super.onProgressUpdate(values);

//in the arrayList we add the messaged received from server
arrayList.add(values[0]);
// notify the adapter that the data set has changed. This means that new message received
// from server was added to the list
mAdapter.notifyDataSetChanged();

parseMessage(values);
}

然后出于调试目的,我打印以控制 parseMessage() 中值中的项目:

private void parseMessage(String... theMessage)
{
System.out.println("-----------------------------");

for (int i=0; i<theMessage.length; i++)
{
System.out.println(theMessage[i]);
}

System.out.println("-----------------------------");

if (theMessage[0].equals("<PING>"))
{
mTcpClient.sendMessage("<PING>");
}
else if (theMessage[0].equals("<PING>\n"))
{
mTcpClient.sendMessage("<PING>");
}
else
{
mTcpClient.sendMessage(theMessage[0]);
}
}

这为我收到的第一条消息提供了预期的输出:

02-07 14:39:51.277: I/System.out(10823): -----------------------------
02-07 14:39:51.277: I/System.out(10823): <PING>
02-07 14:39:51.277: I/System.out(10823): -----------------------------

然而,客户端第二次收到 "<PING>\n"控制台显示:

02-07 14:40:01.298: I/System.out(10823): -----------------------------
02-07 14:40:01.298: I/System.out(10823): ��<PING>
02-07 14:40:01.298: I/System.out(10823): -----------------------------

我不明白为什么它显示符号 .第二次收到"<PING>\n"我希望它显示:

-----------------------------
<PING>
<PING>
-----------------------------

谁能解释一下预期输出和实际输出之间的差异?

最佳答案

... 是一个 variable argument list .

在函数内部它可以被视为一个数组。

关于java - 什么是 "String...",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14754062/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com