作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
假设我有以下Kotlin课:
data class Person(val firstName: String, val lastName: String)
data
类,因此将自动生成具有以下签名的方法:
fun copy(firstName: String = this.firstName, lastName: String = this.lastName): Person
Person john = new Person("John", "Smith");
Person adam = john.copy("Adam");
Person
对象:“John Smith”和“Adam Smith”。
copy
方法没有重载的变量,我看不到任何通过
@JvmOverloads
添加它们的方法。
@JvmOverloads
fun Person.copy(firstName: String = this.firstName, lastName: String = this.lastName): Person {
return this.copy(firstName = firstName, lastName = lastName)
}
最佳答案
不可以。但是我们可以自己覆盖复制方法。像这样:
data class CustomTextInfo(
val text: String,
val textColor: Int,
val backgroundColor: Int,
val fontId: Int
) {
fun copy(): CustomTextInfo {
return CustomTextInfo(text, textColor, backgroundColor, fontId)
}
}
关于java - 是否可以在Kotlin中将@JvmOverloads添加到生成的copy(…)方法中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52410264/
为什么禁止从具有默认参数的类主构造函数自动生成许多对 Java 可见的构造函数? @JvmOverloads class Video(private val id: Long, val ownerId
当我们像这样用 Kotlin 创造乐趣时 fun foo(bar: Int = 0, baz: Int) { /* ... */ } foo(baz = 1) // The default value
我的代码库是混合的 java 和 kotlin 代码。我想在带有默认参数的接口(interface)方法上使用@JvmOverloads。像这样: @JvmOverloads fun getClien
我尝试使用 @JvmOverloads 为 Kotlin 函数创建重载方法。出于好奇,我尝试查看字节码和反编译的 Java 代码。但是,我无法理解 Java 代码。 这里是一个简单的 Kotlin 代
我试图通过将两者都定义为顶级乐趣和伴随对象静态乐趣来实现这一点,但我得到了相同的结果。我能够看到生成的方法,但没有用于 newInstance(mouse: Mouse?) 的方法,我对如何从 Jav
我是一名优秀的程序员,十分优秀!