Tag: 默认值

Java是否支持默认参数值?

我遇到了一些具有以下结构的Java代码: public MyParameterizedFunction(String param1, int param2) { this(param1, param2, false); } public MyParameterizedFunction(String param1, int param2, boolean param3) { //use all three parameters here } 我知道在C ++中,我可以给参数分配一个默认值。 例如: void MyParameterizedFunction(String param1, int param2, bool param3=false); Java支持这种语法吗? 有没有任何理由为什么这两个步骤的语法是可取的?

为什么有可能调用kotlin的构造函数的默认参数,但不是一个方法?

我很好奇为什么有可能调用kotlin的构造函数与默认参数,而不是从java代码的方法? 例如: class Test(val test: String = “”) Java客户端: void test() { new Test(); } 没关系。 但是如果我想用方法做同样的技巧,这是不可能的: class Test { fun x(x: Int = 5) { } } Java客户端,编译错误: void test() { new Test().x(); } 在我看到的方法反编译为java字节码 X $默认 方法。 它是静态的,我不能从Java调用它(想法不允许我这样做)。 而且只有添加了 @JvmOverloads 使用默认arg的kotlin方法的注解创建了一个可从java端访问的方法。 问题是为什么有两种方法如何从java调用kotlin的默认值? 为什么不做一切可以访问/默认情况下不可访问? 这是一个糟糕的设计,还是有这个严肃的理由?

在Kotlin中访问函数的默认参数值

函数的默认参数值是否可以从函数扩展或其他任何地方访问? fun DieRoll.cheatRoll():Int = roll(min = max -1) fun roll(min: Int = 1, max: Int = 6): Int = (min..max).rand()

Kotlin:你可以用varargs命名参数吗?

例如,你可能有一个复杂的签名和可变参数的函数: fun complicated(easy: Boolean = false, hard: Boolean = true, vararg numbers: Int) 这应该是有道理的,你应该能够这样调用这个函数: complicated(numbers = 1, 2, 3, 4, 5) 不幸的是,编译器不允许这样做。 有没有可能使用可变参数命名参数? 有没有什么聪明的解决办法?