来自Java的kotlin函数默认参数 [英] kotlin function default arguments from java

查看:76
本文介绍了来自Java的kotlin函数默认参数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

遵循科特林课程:

class Foo {
   public fun bar(i: Int = 0): Int = 2 * i
}

我如何在没有Java/groovy代码的任何参数的情况下调用"bar"函数?

How should I call 'bar' function without any parameter from a java/groovy code?

def f = new Foo()
f.bar() //throws:  java.lang.IllegalArgumentException: Parameter specified as non-null contains null

推荐答案

您现在可以在Kotlin中进行此操作.对于您的类方法,请使用 @JvmOverloads注释.

You can do this now in Kotlin. For your class method, use the @JvmOverloads annotation.

class Foo {
    @JvmOverloads public fun bar(name: String = "World"): String = "Hello $name!"
}

现在只需从Java调用它即可:

Now simply call it from Java:

Foo foo = new Foo();
System.out.println(foo.bar());
System.out.println(foo.bar("Frank"));

输出以下内容:

Hello World!

Hello World!

你好弗兰克!

这篇关于来自Java的kotlin函数默认参数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆