class MyClass {
// for use in KOTLIN only DSL style e.g. MyClass() { offset = 1 }
var offset: Int? = null
// for use in JAVA only BUILDER style e.g. new MyClass().withOffset(1)
fun withOffset(value: Int) = apply { offset = value }
}
val myClass = MyClass() { offset = 1 }
MyClass myClass = new MyClass().withOffset(1)
您不能隐藏构造函数,但是您可以使用运算符fun invoke
创建所谓的假构造函数,其中可以使用@jvmsyntheic注释对Java隐藏它。
为了从kotlin隐藏一个函数,可以使用@deprecated和deprecationlevel.hidden。
注意:@jvmfield将指示编译器不要为您的var生成缺省getter和setter
class MyClass {
@JvmField
var offset: Int? = null
@kotlin.Deprecated(message = "JUST FOR JAVA", level = DeprecationLevel.HIDDEN)
fun withOffset(value: Int) = apply { offset = value }
companion object {
@JvmSynthetic
operator fun invoke(init: MyClass.() -> Unit) = MyClass().apply(init)
}
}
MyClass() { offset = 1 }
// or
MyClass { offset = 1 }
Java中的用法:
MyClass().withOffset(1)
资源:
在我的代码中,first href="http://example1.com"不工作。如何编辑代码? 谢谢
我正在尝试编写我的网络请求,以使用改版2.6.0和coroutines暂停乐趣。但我总是得到空对象。这是我第一次尝试改装2.6和coroutines 这是我的示例代码 数据类 示例JSON对象 网络接口 改装客户端 存储库 ViewModel中的livedata 我一直得到空响应。我哪里做得不对?
我使用JSoup解析字符串,其中包含超文本标记语言标记为纯文本。例如: 它可以很好地解析它,但问题是我的Java字符串是否包含
问题内容: 我经常使用以下命令在matplotlib图上绘制点: 但是,这会使图例在图例中两次加星,如下所示: 当我真的希望它看起来像: 我该怎么做呢? 问题答案: 这应该工作: 顺便说一句,如果您添加行 到您的matplotlibrc文件中,那么这将是新的默认设置。 [另请参见散点图,具体取决于您的情节。] API:链接到API文档