Editable是一个接口(interface),下面的代码是EditText
类的一个方法,在android源码中显示:
public Editable getText() {
return (Editable) super.getText();
}
我想说清楚如何理解代码(Editable)super.getText()
,我有两种理解代码行的方法:
1.cast EditText
的super
类(EditText的父类(super class)是TextView)为Editable
,然后调用getText()方法使用 可编辑
,
2.使用父类(TextView)调用getText()
方法,然后将返回类转换为Editable
哪个是对的?根据运算符的优先级,运算符()
.
都具有最高的优先级,结合性是左的,所以想到的可能是第一种方式是右的。但这让我更加困惑。你知道吗,EditText
的父类(super class)是 TextView
,我做了一个从 TextView
到 Editable
的转换? TextView
和Editable
没有关系,怎么转换成功?
最佳答案
TextView has nothing to do with Editable, how can it cast successfully?
TextView.getText()
的返回类型是CharSequence
,Editable
是CharSequence
的子类>.
因此...
return (Editable) super.getText();
...只是将 CharSequence
(通过调用 super.getText()
返回)转换为 Editable
。
关于java - 如何理解 "(Editable) super.getText();",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9245792/