java 方法传参时,不是必须传的参数如何设置
1、java是强匹配的,调用方法,对应的参数必须要有值,如果不是必须传的,意思是你可能不需要用的,可以传null
2、或者改造原有的方法参数,把多余的参数去掉
3、或者另外写一个方法,少参数的,然后该方法内部,调用原来的方法
4、代码截图如下:
5、看代码,13行的,就相当于调用少一个参数的
拓展资料:
如题,有一个方法里两个形参,我另一个文件类中一个方法想要那个方法的返回值,可是第二个参数在这里用不到,能否只传第一个参数 如何实现,前提这个类不能继承后重写方法,因为多人合同写的。
解决方案
不可以,变通的办法是再写一个只有一个参数的函数重载形式,在其中给另一个参数一个预设值,间接调用。
解决方案二:
一个Action调用两个不同的方法
解决方案三:
调用的时候给一个无影响的值
解决方案四:
讲道理的话是不能这样做的,不过如果你传的第二个参数如果对于当前调用时没有意义也是可以传一个值的。
解决方案五:
首先,Java语法规定了方法的参数列表,那么调用的时候就需要按照方法定义传递给足够的参数,你那种需要少传参的话可以重载方法,不要定义那么多参数就可以了。
解决方案六:
你一个方法传入两个参数,但如果你只调用一个,那么另外一个参数你让人家多尴尬,你让人家尴尬了,人家也不会让你好过的,因此就给你报错啊,当然你可以像楼上所说,传入一个无影响的参数进去,但这又有什么意义,还造成代码的浪费,你这个方法每调用一次,就造成一次浪费,因此,最好的方法就是传入一个参数,写一个重载方法。初学者经验不足,互相指教~
解决方案七:
既然用不到第二个参数,最简单的,给个无关痛痒的初始值。
解决方案八:
方法定义2个参数,在方法体内提供判断参数,看传入的参数是否为null,调用方法时,只传入一个值,另一个是null就行。
解决方案九:
方法 重载一下 就好了。
2018-06-29 · 专注互联网IT教育
你可以定义一下可选参数:
/**
* 方法参数为“int ... value”,三个点表示value参数可选 并且这个参数不是一个,是一个参数数组,具体可以看main方法中的调用方式
* 这里只作为例子,输出参数的值
*
* @param value
* 可选参数数组,调用时根据实际需要,可以缺省,可以指定,一个方法中只能有一个这样的参数项,并且只能在最后
*/
public void showNumber(int... value) {
// 输入参数不是null,注意:没有给定参数时候,value!=null
if (value != null) {
// 首先判断这个方法是否给定了参数,如果没有给,输出提示信息
if (value.length == 0) {
System.out.println("方法没有参数!");
}
// 如果给了参数,那么输出全部
else {
// 需要注意的是,value是一个数组,取值时候用遍历数组的方式进行
for (int i = 0; i < value.length; i++) {
System.out.print(value + "\t");
}
System.out.println();
}
}else {
System.out.println("输入参数为null");
}
}
推荐于2017-10-13 · 知道合伙人软件行家
以下代码供你参考一下:
package com.dusd;
public class ParamOptional {
public static void main(String[] args) {
// TODO Auto-generated method stub
ParamOptional param = new ParamOptional();
param.showNumber(2,3);
}
/**
* @param value
* 可选参数数组
*/
public void showNumber(int... value) {
// 输入参数不是null,注意:没有给定参数时候,value!=null
if (value != null) {
// 首先判断这个方法是否给定了参数,如果没有给,输出提示信息
if (value.length == 0) {
System.out.println("方法没有参数!");
}
// 如果给了参数,那么输出全部
else {
// 需要注意的是,value是一个数组,取值时候用遍历数组的方式进行
for (int i = 0; i < value.length; i++) {
System.out.print(value + "\t");
}
System.out.println();
}
}else {
System.out.println("输入参数为null");
}
}
}