【发布时间】:2018-05-29 18:26:34
【问题描述】:
我希望能够将数组直接写为我的方法的参数,而不是将数组值存储在单独的变量中。
例子:
public void myMethod(myObject[] objParam, String[] strParam, Integer[] intParam) {
// do stuff
}
我想这样调用方法:
myMethod({obj1, obj2}, {"string1","string2"}, {123,456});
目前这在我的 IDE 中是不可接受的,我尝试了不同的符号,甚至转换为数组,但没有任何效果。
我不想每次需要使用我的方法时都为每个参数声明和启动一个数组。
有没有人知道一个好的解决方法?使用 List 是一种解决方案吗?
编辑:参数类型是固定的,数组值将对应于 3 个参数中的每一个的 1 到 1。
【问题讨论】:
-
new Object[]{obj1, obj2}应该这样做,或者这正是您首先要避免的?恐怕没有更短的方法可以在 Java 中指定一个数组。而且 List/Set/Map 更加冗长。 -
myMethod(new myObject[]{obj1, obj2}, new String[]{"string1","string2"}, new Integer[]{123,456});? -
“我不想为每个参数声明和启动一个数组”,你想传递 3 个数组参数,我想必须初始化他们是故事的一部分。
-
如果您知道值,为什么不直接在代码中输入它们?
-
您的评论表明这个问题可能是X/Y problem的又一个案例。
标签: java arrays parameters casting parameter-passing