java如何输出省略号_关于java:此方法签名中的省略号(…)是什么?

在应用程序引擎文档中,此方法签名中的省略号(JID...用于什么?

public MessageBuilder withRecipientJids(JID... recipientJids)

这三个点有什么作用?

顺便说一下,我试过水平省略号,…,unicode u+2026。Java 8中的NETBeaS 8报告"非法字符"。因此Java VARARGS需要三个完全停止(周期),EDOCX1×1。

那些是Java VARARGS。它们允许您传递任意数量的特定类型的对象(在本例中,它们是jid类型)。

在您的示例中,以下函数调用是有效的:

MessageBuilder msgBuilder; //There should probably be a call to a constructor here ;)

MessageBuilder msgBuilder2;

msgBuilder.withRecipientJids(jid1, jid2);

msgBuilder2.withRecipientJids(jid1, jid2, jid78_a, someOtherJid);

在这里看到更多:http://java.sun.com/j2se/1.5.0/docs/guide/language/varargs.html

注意,参数也可以作为一个jid数组传递(这使得varargs向后兼容)。

还要注意,传递0 varargs(无)是合法的。

最后但并非最不重要的是,vararg必须是方法的最后一个参数。因此,在同一个方法中不能有两个vararg参数。也许,你可以找到这个方法有趣的DOCS. Oracle .COM/JavaSe/ 7 /DOCS/API/Java/UTIL/Helip;

在方法中使用省略号或varargs的方法就像它是一个数组:

public void PrintWithEllipsis(String...setOfStrings) {

for (String s : setOfStrings)

System.out.println(s);

}

可以按如下方式调用此方法:

obj.PrintWithEllipsis(); // prints nothing

obj.PrintWithEllipsis("first"); // prints"first"

obj.PrintWithEllipsis("first","second"); // prints"first

second"

在PrintWithEllipsis中,setOfStrings的类型是一个字符串数组。因此,您可以保存编译器的一些工作并传递一个数组:

String[] argsVar = {"first","second"};

obj.PrintWithEllipsis(argsVar);

对于varargs方法,序列参数被视为相同类型的数组。因此,如果两个签名只有一个声明序列,另一个声明数组,如本例所示:

void process(String[] s){}

void process(String...s){}

然后发生编译时错误。

源代码:Java编程语言规范,技术术语是EDCOX1×10,而不是通用术语EDCOX1(4)。

+1表示数组与省略号方法的签名位。

三点(…)符号实际上是从数学中借来的,它的意思是"…等等"。

至于它在Java中的使用,它代表EDCOX1(4),这意味着可以将任意数量的参数添加到方法调用中。唯一的限制是varargs必须在方法签名的末尾,并且每个方法只能有一个。

它们是varargs,用于创建接收任意数量参数的方法。

例如,printstream.printf方法使用它,因为您不知道将使用多少个参数。

它们只能用作参数的最终位置。

在Java 1.5上添加EDCOX1〔4〕

这意味着该方法接受JID类型的变量数参数("varargs")。在此方法中,提出了recipientJids。

对于这样的情况,这很方便:您有一个方法可以选择以自然方式处理多个参数,并且允许您编写可以将一个、两个或三个参数传递给同一个方法的调用,而不需要动态创建数组。

它还支持来自C的成语,如sprintf;例如,参见String.format()。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值