它称为varargs。
它允许方法接受任意数量的参数。它们可以在方法中作为数组访问:
public void foo(String... args) {
for (String arg : args) {
// do smth with arg.
}
}
这是句法糖。编译器隐藏了数组的创建,因此而不是
bar.foo(new String[] {"1", "2", "3"});
你写
bar.foo("1", "2", "3");
问题内容: 我是Java的新手,我想问这个问题只是为了帮助我更好地理解OOP。 假设我要定义一个名为“小时”的新类。要实例化该类,我们需要指定一个整数以指示该实例的小时数。 因此,当我们在此处定义小时类别时,构造函数的参数应在[0,24)范围内。如果定义了超出此范围的参数,我们如何定义这样的参数?我可以抛出错误吗? 谢谢。 问题答案: 如果您希望 编译器 捕获错误,则可以为小时定义一个枚举,然后将
问题内容: 我有一个抽象类 Monitor.java ,它由类 EmailMonitor.java 子类 化 。 方法: 在 Monitor.java中 定义,并且必须在 EmailMonitor.java中 覆盖。 我目前在 EmailMonitor.java中 重写了如下方法: 但是,这会产生编译时错误: 是的子类,因此(至少在我看来)以这种方式覆盖它是很有意义的。看到编译器对我的逻辑不满意,
问题内容: 鉴于: 假设我想通过反射调用方法,将ArrayList作为参数传递给: 第3行将抛出异常,因为myList的运行时类型是ArrayList,而不是List。 有没有一种很好的通用方法可以不需要A类的参数类型知识? 问题答案: 如果您知道类型为,则将其用作参数。 如果您事先不知道类型,请想象您有: 如果有任何自动方式,反射应调用哪种方法? 如果需要,可以使用或,但要视情况而定。 您可以在
我想要的:我在下面试过了,但它不起作用。
大家好,我正在使用Java反射来调用方法,并将参数传递给这些方法。下面是示例代码 用于调用方法的一段代码 其中test=“method1”/“method2”/“method3” obj是基类的对象 上面的代码抛出的是NOSuchmethodException
问题内容: 我正在编写一个程序,该程序检查方法的参数数量并打印警告消息(它是一个代码编码程序)。如果标准不止于此,问题是我不知道协议编号是多少。我环顾四周,没有任何运气。谁能告诉我或至少指向我正确的方向? 问题答案: 您可以在Java中指定的参数数量没有标准限制,但是根据 “代码完成” (请参阅此文章),您应该将参数数量限制为7个左右,这会对参数产生负面影响。您代码的可读性。