当前位置: 代码迷 >> Android >> (Editable) super.getText(); 运算符顺序是什么,该如何处理
  详细解决方案

(Editable) super.getText(); 运算符顺序是什么,该如何处理

热度:139   发布时间:2016-05-01 22:00:51.0
(Editable) super.getText(); 运算符顺序是什么
重点在后面,请您看完

Editable是一个接口,这行代码是EdiView类中的一个方法,在Android源代码里,有兴趣的可以看一下,这段代码原型如下:
Java code
public Editable getText() {    return (Editable) super.getText();}

先(Editable)super强制转换后,再进行getText()呢?还是先super.getText()后,在进行(Editable)强制转换呢?据Java的运算符顺序来看, () 和 . 都是处在运算优先级的第一位,也就是说,这两个运算符的优先级是平等的,然后由左至右进行运算,就变成了先算(Editable)super,再将强制转换后的类调用getText()方法,但是感觉这样做不对劲儿,因为将EdiView的父类(也就是TextView)进行强制转换,转换为Editable接口,这一步本身就感觉不对,TextView与Editable本身没什么关系,怎么可以随便强制转换呢?(各位这两个到底又没有关系?这两个类都有getText()函数,好像有关系的样子,不过我在官方的帮助文档里面没有找到任何有关系的依据)而且转换成了一个接口,怎么还能引用getText()方法?接口本身不全都是抽象的方法吗,不要告诉我引用的都是实例的方法,这里哪里有实例?转换成的是一个接口啊,接口怎么可能有可以调用的方法

------解决方案--------------------
  相关解决方案