以下方法中String后面的3个点是什么意思?

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

推荐答案

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

请参阅此处的"任意数量的参数"部分: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"});

Important Note:以这种方式传递的参数始终是一个数组——即使只有一个.确保你在方法体中以这种方式对待它.

Important Note 2:获得...的参数必须是方法签名中的最后一个.myMethod(int i, String... strings)可以,但myMethod(String... strings, int i)不行.

感谢瓦什在 comments 中的澄清.

Java相关问答推荐

更新我们的一个文物后出现了严重的符号引用错误

如何审查Java dtos中的自定义注释字段?

OpenJDK、4K显示和文本质量

无法找到符号错误—Java—封装

@从类文件中删除JsonProperty—Java

springboot start loge change

Jlink选项&-strie-ative-Commands";的作用是什么?

在模拟超类中设置非setter属性的值

Java Swing:初始化身份验证类后未检测到ATM_Interface键事件

所有 case 一起输入时输出错误,而单独放置时输出正确

为什么Java Annotation接口覆盖对象类中的方法

Jakarta CDI强制bean构造/注册遗留事件侦听器

无法使用Java&;TestContainers获取AWS SQS队列的属性

有没有更快的方法在N个容器中删除重复项?

S,要对Java复制构造函数深度克隆所有属性进行单元测试,最可靠的方法是什么?

Android Java:已设置但未读取SharedPreferences

从LineChart<;字符串、字符串和gt;中删除数据时出现特殊的ClassCastException;

IntelliJ IDEA依赖项工具窗口丢失

将基于实例编号的对象列表拆分为新的对象列表

message.acknowledge()没有';在使用Spring Boot在ActiveMQ中读取消息后,t将消息出列