java 方法传参时,不是必须传的参数如何设置

 我来答
思科网侠
推荐于2019-08-23 · TA获得超过1.4万个赞
知道小有建树答主
回答量:607
采纳率:27%
帮助的人:45.6万
展开全部

1、java是强匹配的,调用方法,对应的参数必须要有值,如果不是必须传的,意思是你可能不需要用的,可以传null

2、或者改造原有的方法参数,把多余的参数去掉

3、或者另外写一个方法,少参数的,然后该方法内部,调用原来的方法

4、代码截图如下:

5、看代码,13行的,就相当于调用少一个参数的

拓展资料:

如题,有一个方法里两个形参,我另一个文件类中一个方法想要那个方法的返回值,可是第二个参数在这里用不到,能否只传第一个参数 如何实现,前提这个类不能继承后重写方法,因为多人合同写的。

解决方案

不可以,变通的办法是再写一个只有一个参数的函数重载形式,在其中给另一个参数一个预设值,间接调用。

解决方案二:

一个Action调用两个不同的方法

解决方案三:

调用的时候给一个无影响的值

解决方案四:

讲道理的话是不能这样做的,不过如果你传的第二个参数如果对于当前调用时没有意义也是可以传一个值的。

解决方案五:

首先,Java语法规定了方法的参数列表,那么调用的时候就需要按照方法定义传递给足够的参数,你那种需要少传参的话可以重载方法,不要定义那么多参数就可以了。

解决方案六:

你一个方法传入两个参数,但如果你只调用一个,那么另外一个参数你让人家多尴尬,你让人家尴尬了,人家也不会让你好过的,因此就给你报错啊,当然你可以像楼上所说,传入一个无影响的参数进去,但这又有什么意义,还造成代码的浪费,你这个方法每调用一次,就造成一次浪费,因此,最好的方法就是传入一个参数,写一个重载方法。初学者经验不足,互相指教~

解决方案七:

既然用不到第二个参数,最简单的,给个无关痛痒的初始值。

解决方案八:

方法定义2个参数,在方法体内提供判断参数,看传入的参数是否为null,调用方法时,只传入一个值,另一个是null就行。

解决方案九:

方法 重载一下 就好了。



深圳海枫科技有限公司
2018-06-29 · 专注互联网IT教育
深圳海枫科技有限公司
海枫致力于互联网IT技术人才综合服务平台,累计培养数万IT技术人才,不断适应市场及客户的需求,为客户创造价值。上线产品有:软件测试工程师、Java开发工程师、Web前端工程师、UI软件设计师
向TA提问
展开全部

1、java是强匹配的,调用方法,对应的参数必须要有值,如果不是必须传的,意思是你可能不需要用的,可以传null

2、或者改造原有的方法参数,把多余的参数去掉

3、或者另外写一个方法,少参数的,然后该方法内部,调用原来的方法

4、代码截图如下:

5、看代码,13行的,就相当于调用少一个参数的

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
千叶育儿
推荐于2017-09-10 · 育儿、诗词分享,每天进步一点点!
千叶育儿
采纳数:1524 获赞数:5379

向TA提问 私信TA
展开全部

你可以定义一下可选参数:

/**
         * 方法参数为“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");
                }
        }
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
杜爷1号
推荐于2017-10-13 · 知道合伙人软件行家
杜爷1号
知道合伙人软件行家
采纳数:4973 获赞数:9186
毕业于福建农林大学,本科学士学位。从事IT行业3年,曾参与过多个大型项目的需求调研、软件研发。

向TA提问 私信TA
展开全部
方法参数为普通的形参定义,中间加三点,比如:“int ... value”,三个点表示value参数可选 并且这个参数是一个参数数组。
以下代码供你参考一下:
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");
}
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
好像放韩假fQ
2019-04-18
知道答主
回答量:7
采纳率:0%
帮助的人:2811
展开全部
不是必须传的参数,可以在方法中if分开执行[没有参数,设置为null]时的逻辑和[有参数]时的逻辑,调用时参数传递为null或真正参数
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式