Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/355.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 是否可以在不事先声明的情况下将参数列表传递给方法?_Java - Fatal编程技术网

Java 是否可以在不事先声明的情况下将参数列表传递给方法?

Java 是否可以在不事先声明的情况下将参数列表传递给方法?,java,Java,给定一种方法,例如: public void blit(int[] pos) { do stuff.. } 有没有一种方法可以在不首先声明参数的情况下传递参数列表 例如,在Python中,我可以执行以下操作: def blit(pos): stuf... blit([20,50]) 我可以简单地传入一个在参数列表中专门创建的列表。要在Java中实现等效,似乎必须首先声明数组,然后才能将其传递给方法 int[] coordinates = {20,50}; blit(coordi

给定一种方法,例如:

public void blit(int[] pos) {
   do stuff..
}
有没有一种方法可以在不首先声明参数的情况下传递参数列表

例如,在Python中,我可以执行以下操作:

def blit(pos):
   stuf...

blit([20,50])
我可以简单地传入一个在参数列表中专门创建的列表。要在Java中实现等效,似乎必须首先声明数组,然后才能将其传递给方法

int[] coordinates = {20,50};
blit(coordinates);
这不是什么大不了的事,但如果我能做些像

blit({20,50});
当然,这是行不通的。我还尝试在调用中创建数组,如

blit(new int[] = {20,40});
但同样,没有运气。所以,也许这是一个可怕的问题,但是有没有一种方法可以将参数列表传递给一个部分模仿Python行为的方法呢

你很接近:

blit(new int[] {20,40});
你很接近:

blit(new int[] {20,40});

我想你指的是匿名数组创建:

blit(new int[] {20, 40});

我说的对吗?

我想你指的是匿名数组创建:

blit(new int[] {20, 40});

我说的对吗?

是,使用可变参数数语法:

public void blit(Object ... args)
{
}

blit(10, 20, 30);

如果要传递同构参数,则应首选列表。

是,使用可变参数数语法:

public void blit(Object ... args)
{
}

blit(10, 20, 30);
如果要传递同构参数,则应首选列表。

使用以下语法:

blit(new int[]{20, 40});
使用以下语法:

blit(new int[]{20, 40});

你可以这样做

  blit(new int[]{5,10});

你可以这样做

  blit(new int[]{5,10});

您可以通过两种方式来实现:

blit(new int[] {20,40});
或者使用varargs声明您的方法:

public void blit(int... pos) {}
这样称呼它:

blit(20, 40);

您可以通过两种方式来实现:

blit(new int[] {20,40});
或者使用varargs声明您的方法:

public void blit(int... pos) {}
这样称呼它:

blit(20, 40);
为什么不使用列表

blitnew列表

为什么不使用列表

blitnew列表

可以将java.util.Map作为方法的唯一参数。With key=参数的名称

java.util.Map<String,Object> arguments=new HashMap<String,Object>();
List<Integer> positions=new ArrayList<Integer>();
positions.add(1);
positions.add(2);
arguments.put("pos",positions);

myfunction_call(arguments);
可以将java.util.Map作为方法的唯一参数。With key=参数的名称

java.util.Map<String,Object> arguments=new HashMap<String,Object>();
List<Integer> positions=new ArrayList<Integer>();
positions.add(1);
positions.add(2);
arguments.put("pos",positions);

myfunction_call(arguments);
称之为blitnewint[]{20,40}

对于引用类型,可以声明方法whis varargs:

 public void blit(Integer... pos) {
    //do stuff..
 }
 // and the array creation code will be inserted by the compiler:
 blit(20,40);
称之为blitnewint[]{20,40}

对于引用类型,可以声明方法whis varargs:

 public void blit(Integer... pos) {
    //do stuff..
 }
 // and the array creation code will be inserted by the compiler:
 blit(20,40);