小墨の博客

梦想需要付诸行动,否则只能是梦

Java 函数不支持参数默认值

今天在写Java项目的时候,因为之前C#用惯了,而且Java和C#很多地方都是相似的,所以自己以为Java也是可以支持方法参数指定默认值的,但是试了一下发现编译通不过。

上网一查才知道原来 Java 函数不支持参数默认值。


仔细想想,也是有道理的,比如下面的代码

public int add(int a) {
    // do something
}

public int add(int a, int b = 0) {
    // do something
}

当调用 add 方法,只传入一个参数的时候,Java就不知道该调用哪个参数了,而且这么做的话会让函数的重载变得混乱,所以Java直接把参数默认值砍了。


那么我们要指定默认值怎么办呢?其实可以利用函数重载变相实现,就像下面这样:

    public Date(int year, int month, int date) {
        this(year, month, date, 0, 0, 0);
    }

    public Date(int year, int month, int date, int hrs, int min, int sec) {
        cal = null;
        if (staticCal == null)
            makeStaticCalendars();
        synchronized (staticCal) {
            staticCal.setTimeZone(TimeZone.getDefault());
            staticCal.clear();
            staticCal.set(year + 1900, month, date, hrs, min, sec);
            fastTime = staticCal.getTimeInMillis();
        }
    }

本文查阅了下面这些资料:

https://www.zhihu.com/question/29891411

张小弟之家

本文链接:
文章标题:

本站文章除注明转载/出处外,均为原创,若要转载请务必注明出处。转载后请将转载链接通过邮件告知我站,谢谢合作。本站邮箱:admin@only4.work

尊重他人劳动成果,共创和谐网络环境。点击版权声明查看本站相关条款。

    发表评论:

    搜索
    本文二维码
    标签列表
    站点信息
    • 文章总数:508
    • 页面总数:20
    • 分类总数:92
    • 标签总数:208
    • 评论总数:61
    • 浏览总数:225323

    | | |
    | |  Z-Blog PHP