Java 是否需要双重定义数据类型?
在代码中Java 是否需要双重定义数据类型?,java,android,Java,Android,在代码中 NotificationManager mNotificationManager = (NotificationManager) getSystemService(ns); 是否确实需要定义两次数据类型?否,您应该只需要定义一次,如: NotificationManager mNotificationManager=getSystemService(ns) 但请确保getSystemService的返回类型为NotificationManager或其子类之一。否,您只需定义一次,如:
NotificationManager mNotificationManager = (NotificationManager) getSystemService(ns);
是否确实需要定义两次数据类型?否,您应该只需要定义一次,如:
NotificationManager mNotificationManager=getSystemService(ns)代码>
但请确保getSystemService
的返回类型为NotificationManager
或其子类之一。否,您只需定义一次,如:
NotificationManager mNotificationManager=getSystemService(ns)代码>
但是,请确保getSystemService
的返回类型为NotificationManager
或其子类之一。我认为您不是定义它两次,而是定义它一次,然后将值/对象强制转换为特定类型。在某些情况下,有必要这样做
我的观点是,定义和强制转换之间有区别。我认为您不是定义它两次,而是定义它一次,然后将值/对象强制转换为特定类型。在某些情况下,有必要这样做
我的观点是定义和铸造之间有区别。在这种情况下,是的。getSystemService返回一个对象实例,您必须将其强制转换为所需的任何对象(在本例中为NotificationManager
)在本例中为是。getSystemService返回一个对象实例,您必须将其强制转换为所需的任何对象(在本例中为NotificationManager
)您没有声明类型2x。在队列中
NotificationManager nm = (NotificationManager)getSystemService(...);
您已经声明了NotificationManager nm类型的变量,并将getSystemService()的返回类型(即Object)强制转换为NotificationManager类型,从而使对nm的赋值合法。注意,你可以不用演员
Object obj = getSystemService(...);
但是,除非您强制转换对象,否则不能将obj用作其他对象。您没有声明类型2x。在队列中
NotificationManager nm = (NotificationManager)getSystemService(...);
您已经声明了NotificationManager nm类型的变量,并将getSystemService()的返回类型(即Object)强制转换为NotificationManager类型,从而使对nm的赋值合法。注意,你可以不用演员
Object obj = getSystemService(...);
但是,除非强制转换对象,否则不能将obj用作其他对象。这取决于getSystemService
;)的返回类型。)但是不,Java中没有类型推断。@delnan-你能描述一下类型干扰是什么意思吗?-我对有PHP背景的Java非常陌生。作为一个简单的例子,C#linevar mNotificationManager=getSystemService(ns)
与mNotificationManager=getSystemService(ns)完全相同
。这取决于getSystemService
;)的返回类型但是不,Java中没有类型推断。@delnan-你能描述一下类型干扰是什么意思吗?-我对有PHP背景的Java非常陌生。作为一个简单的例子,C#linevar mNotificationManager=getSystemService(ns)
与mNotificationManager=getSystemService(ns)完全相同
.getSystemService()是一个android SDK调用并返回类型对象。getSystemService()是一个android SDK调用并返回类型对象。