在Java中向方法调用添加未知数量的参数的参数传递
我想通过在参数列表的末尾添加未知数量的参数来扩展一个方法(而不是编写一个基本上做相同事情的新方法)
如果我这样做,我是否必须更改对该方法的所有调用?我想问题是,未知参数是否包括根本没有传入参数的情况
例如,如果我有一个方法:
queryFactory(int [] typeArgs, int queryType, int[] ... args){}
我可以打电话给:
queryFactory(typeArgsInstce, queryTypeInstce)
然后,当我需要向查询调用添加参数时:
queryFactory(typeArgsInstce, queryTypeInstce, argsInstce)
其中argsInstce
是包含额外参数的整数数组
我只想编辑这个方法,而不是编写一个新的方法,它做的事情几乎完全相同,只是它有一些参数要添加到查询中。我只需编写另一个方法,如果通过编辑这个方法,我将不得不更改对这个方法的每一次调用
# 1 楼答案
所以用文字回答这个问题:我们至少需要两个参数。这会将一个空数组“i3[]”传递给该方法。3号及以上的参数被视为数组值
这没什么区别
varargs参数必须是最后一个,这样它就不会与第一个数组冲突
# 2 楼答案
我知道您不想更改方法的签名,因为您需要更改该方法的每个调用,所以您可以创建一个包含3个参数和所有代码的方法,并用2个参数重载同一个方法,但在这个方法中,您只调用包含3个参数的方法,最后一个参数将为null。我知道这不是你想要的,但你不会重复代码并更改方法的签名