相关疑难解决方法(0)

如何使用varargs方法中的附加参数调用varargs方法

我有一些varargs系统函数,其中T是一些实际类型,如String:

sys(T... args)
Run Code Online (Sandbox Code Playgroud)

我想创建自己的函数,它委托给系统函数.我的功能也是一个varargs功能.我想通过系统函数传递函数的所有参数,以及一个额外的尾随参数.像这样的东西:

myfunc(T... args) {
    T myobj = new T();
    sys(args, myobj); // <- of course, here error.
}
Run Code Online (Sandbox Code Playgroud)

如何更改错误行?现在我只看到一种方法:创建维度[args] + 1的数组,并将所有项目复制到新数组.但也许存在一种更简单的方法?

java delegates variadic-functions

16
推荐指数
2
解决办法
899
查看次数

如何为varargs添加参数?

假设我有方法

void m1(Object... objs) {
   m2("added", objs);
}
Run Code Online (Sandbox Code Playgroud)

void m2(Object... objs) {
   for (Object o : objs) {
      // do something with Object o
   }
}
Run Code Online (Sandbox Code Playgroud)

如果我打电话m1("a", "b"),我想m2看到3个对象的数组(字符串"添加","a"和"b").但是,m2只看到2个对象:字符串"已添加"和一个Object[]数组,其内部包含字符串"a"和"b".

我怎样才能获得所需的行为,也就是说,我只是在将它们转发给另一种方法之前将元素添加到varargs中?

java variadic-functions

8
推荐指数
2
解决办法
3404
查看次数

标签 统计

java ×2

variadic-functions ×2

delegates ×1