【发布时间】:2017-05-21 14:41:13
【问题描述】:
我们熟悉在 java 和其他编程语言中调用方法的流畅接口。例如:
Picasso.with(this).load(url).into(imageView);
这可以通过 setter 方法返回所需类型的对象来实现。
public Picasso with(Context context)
{
this.context = context;
return this;
}
public X load(String url)
{
this.url = url;
return this;
}
public Y load(ImageView imageView)
{
this.imageView = imageView;
return this;
}
我正在尝试对 kotlin 数据类做同样的事情但遗憾的是我找不到一种方法来覆盖我可以返回该对象的新实例的 setter 方法。
任何关于可以做什么的想法,以便我可以调用流畅的接口或至少改变 setter 的工作方式 可能是这样的
data class CorruptOfficeAccount(.....){
override fun addCollectedFee(Long money) :CorruptOfficeAccount {
this.money = money/5
}
}
这样我就可以打电话了
CorrutOfficeAccount(....).method1().addCollectedFee(20000).method3()
【问题讨论】:
-
考虑接受另一个更好的答案。
标签: java kotlin fluent-interface