当前位置: 首页 > 面试题库 >

Java,参数中有3个点

吕淮晨
2023-03-14
问题内容

以下方法中的三个点是什么意思?

public void myMethod(String... strings){
    // method body
}

问题答案:

这意味着可以将零个或多个String对象(或它们的数组)作为该方法的参数传递。

请参见此处的“任意数量的参数”部分:http : //java.sun.com/docs/books/tutorial/java/javaOO/arguments.html#varargs

在你的示例中,可以将其称为以下任意一种:

myMethod(); // Likely useless, but possible
myMethod("one", "two", "three");
myMethod("solo");
myMethod(new String[]{"a", "b", "c"});

重要说明:以这种方式传递的参数始终是一个数组-即使只有一个。确保在方法主体中以这种方式对待它。

重要说明2:获取的参数…必须是方法签名中的最后一个。因此,myMethod(int i, String... strings)可以,但是myMethod(String... strings, int i)不可以。

感谢Vash在他的评论中的澄清。



 类似资料:
  • 问题内容: 我尝试过这个,并从JAVA中得到了奇怪的行为,有人可以帮我解释一下吗? 然后我有测试用例: 现在的问题是,如果我打电话直接与参数,我会回来,但如果调用与,它调用,它告诉我该参数不为空,但空数组。 问题答案: 问题是,如果我直接使用参数null调用testNull(),我会回来,但如果使用null调用callTestNull()调用了testNull(),它将告诉我参数不是null,而是

  • 问题内容: 我的第一个代码是 我的第二个代码是 使用这两个代码,我得到如下相同的错误 可能是因为我使用的是SQL Server,而不是MySQL?感谢是否有人可以帮助我找到问题。 问题答案: 当您要使用输入切片进行行扫描时,请使用可变的3点表示法将切片转换为单独的参数,如下所示: 使用可变参数的您的列(在本例中为三列)将有效地扩展为: 编辑 : SQL Scan方法的参数值必须为类型。因此,我们需

  • 我正在努力将jdbcType设置为传递给Ibatis查询的参数。我的后端表有定义为varchar的字段,mybatis框架似乎正在将我在Mapper.java中传递的字符串参数转换为nvarchar。因此,查询优化器需要时间来验证执行计划,执行隐式类型转换,从而导致一些意外的延迟。对解决这个问题有什么建议吗?

  • 问题内容: 我写这段代码是为了减少单词列表,以减少单词中以“ A”开头的单词的数量。我只是为了学习Java 8而编写它,所以我想更好地理解它。 [免责声明:我意识到这可能不是编写此代码的最佳方法;它可能是编写代码的最佳方法。 这只是为了练习!]。 中间参数/ lambda(称为累加器)似乎能够在没有最终“ Combiner”参数的情况下减少完整列表。实际上,Javadoc实际上说: {@code

  • 问题内容: 在Swift 2中,调用函数时似乎并不总是需要第一个参数名称。现在在Swift 3中,调用函数时需要第一个参数名称。例如: Swift 2.2允许通过简单键入以下内容来调用该函数: Swift 3似乎要求我们使用方法的第一个参数名称,例如: Swift 3是否适用于所有函数和方法,还是仅适用于某些情况? 问题答案: 是的,这是正确的。Swift正以这种方式解决语言不一致的问题(初始化程

  • 问题内容: 例: 第一个参数采用Double并将其保存在该方法范围中。但是,什么是和? 我阅读了这篇文章,却找不到任何相关内容:https : //developer.apple.com/library/ios/documentation/Swift/Conceptual/Swift_Programming_Language/Methods.html 问题答案: 这就是Swift模仿目标C的命名参