【发布时间】:2013-01-13 19:17:19
【问题描述】:
当我进行方法重载时,我总是会碰到这些。如何在一行中编写第二种方法? 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.
}
【问题讨论】:
-
你不能轻易做到——这两行有什么问题?
-
没什么大不了的,但是当我想在执行 void 方法后返回一些东西时,我总是碰到这些。
-
您是否“拥有” ViewUtil、ViewGroup 等的代码?
-
如果你想在调用 void.. 后返回一些东西。你可以尝试使用方法
clone()检查文档,它返回对象 - 所以你会得到你想要的tv = yourtv.clone();或类似的 textview 或tv = (TextView)yourtv.clone()和这些你可以在你的one line..中使用的东西。 -
但你不能:它是 Java,Java 有你无法避免的语法和语义。除非它是您的代码,否则除了创建实用程序之外,您还能做什么?
标签: java android shortcut anonymous