我以前在Java中有使用autovalue
的模型类。现在,它已转换为Kotlin数据类。
模型类->
public static SampleClass create(
@NonNull final SamplePost post,
@NonNull final List<SampleComment> comments) {
return new AutoValue_SampleClass(post, comments);
}
呼叫类->
return Observable.zip(...
SampleClass::create);
}
新数据类->
data class SampleClass(val post: DiscussionPost,
val comments: List<SampleComment>) : Parcelable
现在如何为数据类调用它?
答案 0 :(得分:5)
U可以使用SampleClass::new
来调用构造函数。
答案 1 :(得分:1)
如果我理解正确,则不需要构造函数调用,但需要构造函数引用。 is ::SampleClass
的语法。但这可能不会触发SAM转换,在这种情况下,您将需要
Observable.zip(...,
{ post, comments -> SampleClass(post, comments) })
编辑:以上假设zip
是从Kotlin调用的,如果要从Java调用,请参阅@ebasha的回答。