当我进行方法重载时,我总是会遇到这些。如何将第二种方法写在一行中? View.setText(text)
返回 void
,但我想在执行 setText()
后返回 TextView
。
注意:我知道我可以“用两个语句来写它”。问题是如何将其制作成一体。
private ViewGroup getExpanableListChild() {
return (LinearLayout) LayoutInflater.from(this).inflate(
R.layout.list_checkbox, null);
}
private ViewGroup getExpanableListChild(String text) {
return ViewUtil.getTextViewFromParent(getExpanableListChild()).setText(
text);//compile error, can't return void.
}
最佳答案
您可以在这些情况下使用构建器,但我不认为在这种特殊情况下有什么意义。
例如:
return ViewUtil.getTextViewFromParent(getExpanableListChild()) //returns some kind of builder
.setText(text) // returns builder
.setColor(someColor) // another example, again returns builder
.build(); // returns ViewGroup
这与 SDK 中存在的策略相同,其中您有 AlertDialog.Builder
构建 AlertDialog
关于java - 如何将这个匿名方法写成一行呢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14307153/