2016-03-24 5 views
-1

Вот мой код:Метод toString метода MenuItem возвращает пустую строку, почему?

@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): экземпляр не пуст:

И там не являются строками для возвращаемого значения myLocationMenuItem.toString().

Класс MenuItem имеют один и тот же ToString как объект:

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

Но он возвращает пустую строку.

Как это возможно?

+0

это просто любопытство о ToString? – Blackbelt

+0

«Не понимаю» о toString, как он мог вернуть пустую строку? –

+1

вы, вероятно, ищете не тот класс. Где вы нашли эту реализацию? – Blackbelt

ответ

1

MenuItem является интерфейсом. Если вы попытаетесь получить реализацию myLocationMenuItem.toString(), вы получите реализацию toString() Object. То, что вы хотите, это реализация ToString() класса, который реализует MenuItem (MenuItemImpl), который

@Override 
public String toString() { 
    return mTitle != null ? mTitle.toString() : null; 
} 
Смежные вопросы