我是Java新手(是的,英文也是=))。 在類方法的名稱之前的括號中的前綴是幹什麼的? 例如,當我稱之爲類方法名稱前的括號中的參數(?或前綴)時,該做什麼?
(EditText)findViewById(R.id.text);
R.id.text
是參數,但什麼是(EditText)
前綴?它做什麼?
我是Java新手(是的,英文也是=))。 在類方法的名稱之前的括號中的前綴是幹什麼的? 例如,當我稱之爲類方法名稱前的括號中的參數(?或前綴)時,該做什麼?
(EditText)findViewById(R.id.text);
R.id.text
是參數,但什麼是(EditText)
前綴?它做什麼?
這就是你如何在Java中使用cast
對象。通常情況下,如果一個方法聲明返回一個通用類型,並且您希望將返回對象用作更專用的類型(並且您知道它實際上是此特定類型的實例),那麼您會這樣做。舉例來說,如果你有一個返回Object
的方法,但你知道的對象實際上是一個String
,並希望使用它作爲一個String
,你這樣做:
String s = (String)myObj.doSomethingThatReturnsObject();
它,如果你沒有做鑄造將必須是
Object o = myObj.doSomethingThatReturnsObject();
(的EditText)前綴試圖鑄retrun對象中的EditText型
它投射的方法的結果到的EditText類。 這意味着您可以將其用作該類的對象,但如果返回的對象不是EditText的實例或派生類型,則該對象將失敗。
因此,該方法可能會返回一個接口引用,並且您可以將其轉換爲該接口的實現類,以便使用它在接口上不可用的行爲。
這就是所謂的鑄造。看看這裏http://docs.oracle.com/javase/tutorial/java/IandI/subclasses.html – 2013-04-27 18:03:30