MenuItem 的 toString 方法 returns 空字符串,为什么?

MenuItem's toString method returns empty String, why?

这是我的代码:

 @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());
        }
    }

这是日志:

03-24 10:19:06.215: I/MenuItemLogging(8519): instance is not null:

并且myLocationMenuItem.toString()的return值没有任何字符串。

MenuItem class 与对象具有相同的 toString:

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

但它 return 是空字符串。

这怎么可能?

如果您还没有看过以下页面,这可能对您有所帮助: http://developer.android.com/reference/android/view/MenuItem.html

MenuItem是一个接口。如果您尝试获取 myLocationMenuItem.toString() 的实现,您将获得 Object 的 toString() 实现。你要的是实现了MenuItem(MenuItemImpl)的class的toString()的实现,也就是

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