2013-04-27 4 views
0

Я новичок в Java (да, и на английском тоже =)). Какой префикс в круглых скобках перед именем метода класса? Например,Какой параметр (? Или префикс) в круглых скобках перед именем метода метода класса, когда я его называю?

(EditText)findViewById(R.id.text); 

R.id.text является параметром, но то, что является префиксом (EditText)? Что оно делает?

+1

Это называется литье. Взгляните здесь http://docs.oracle.com/javase/tutorial/java/IandI/subclasses.html –

ответ

2

Вот как вы cast объектов в Java. Как правило, это можно сделать, если метод объявляет о возврате общего типа, и вы хотите использовать возвращаемый объект как более специализированный тип (и вы знаете, что он фактически является экземпляром этого специализированного типа). Например, если у вас есть метод, который возвращает Object, но вы знаете, что объект на самом деле String, и вы хотите использовать его в качестве String, вы делаете:

String s = (String)myObj.doSomethingThatReturnsObject(); 

, который, если вы не сделали бросок должен быть

Object o = myObj.doSomethingThatReturnsObject(); 
0

(EditText) префикс пытается бросить Retrun объект в EditText типа

1

Это привести результат метода к классу EditText. Это означает, что вы сможете использовать его как объект этого класса, но он потерпит неудачу, если возвращенный объект не является экземпляром EditText или его производных типов.

Таким образом, метод может возвращать ссылку на интерфейс, и вы можете применить его к классу реализации этого интерфейса, чтобы использовать поведение, недоступное для интерфейса.

Смежные вопросы