我是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