在代码....
NotificationManager mNotificationManager = (NotificationManager) getSystemService(ns);
实际上有必要两次定义数据类型吗?
答案 0 :(得分:5)
我认为你没有定义它两次,而是定义它一次,然后将值/对象转换为特定类型。在某些情况下,有必要这样做。
我的观点是定义和投射之间存在差异。
答案 1 :(得分:1)
在那种情况下,是的。 getSystemService返回一个Object实例,您必须将其转换为您需要的任何内容(在本例中为NotificationManager
)
答案 2 :(得分:0)
不,你应该只需要定义一次,例如:
NotificationManager mNotificationManager = getSystemService(ns);
但请确保getSystemService
的返回类型为NotificationManager
或其子类之一。
答案 3 :(得分:0)
您没有声明类型2x。在线,
NotificationManager nm = (NotificationManager)getSystemService(...);
您已声明了NotificationManager nm类型的变量,并将getSystemService()的返回类型(即Object)强制转换为NotificationManager类型,从而使得对nm的赋值合法。请注意,你可以在没有演员的情况下做到这一点,
Object obj = getSystemService(...);
但除非你施展它,否则你不能将obj用作其他任何对象。