2016-03-24 95 views
-1

這裏是我的代碼:MenuItem的toString方法返回空字符串,爲什麼?

@Override 
    public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { 
     super.onCreateOptionsMenu(menu, inflater); 
     inflater.inflate(R.menu.tracking_menu, menu); 

     myLocationMenuItem = menu.getItem(0); 

     if (myLocationMenuItem == null) { 
      Log.i("MenuItemLogging", "instance is: null"); 
     } else { 
      Log.i("MenuItemLogging", "instance is not null: " + myLocationMenuItem.toString()); 
     } 
    } 

這裏的日誌:

10月3日至24日:19:06.215:I/MenuItemLogging(8519):例如不爲空:

並且對於myLocationMenuItem.toString()的返回值不是任何字符串。

MenuItem類具有相同的toString的對象:

public String toString() { 
     return getClass().getName() + '@' + Integer.toHexString(hashCode()); 
    } 

但它返回空字符串。

這怎麼可能?

+0

它只是約了toString好奇心? – Blackbelt

+0

這是關於toString的「不理解」,它如何返回空字符串? –

+1

您可能正在尋找錯誤的班級。你在哪裏找到這個實現? – Blackbelt

回答

1

MenuItem是一個接口。如果您嘗試獲得myLocationMenuItem.toString()的實現,您將獲得Object的toString()實現。你需要的是一個實現MenuItemMenuItemImpl)一類的toString()的實現,這是

@Override 
public String toString() { 
    return mTitle != null ? mTitle.toString() : null; 
} 
相關問題