2017-01-24 2 views
6

Итак, я изучал метод getText(), и я узнал, что он возвращает CharSequence. Таким образом, вы не можете просто сделать это:getText(). ToString() vs (String) getText()

TextView myTextView = (TextView) findViewById(R.id.my_text_view); 
String myString = myTextView.getText(); 

И вместо того, придется конвертировать возвращенное CharSequence в строку, делая это:

TextView myTextView = (TextView) findViewById(R.id.my_text_view); 
String myString = myTextView.getText().toString(); 

вот мой вопрос: ты не можешь просто сделать это вместо того, чтобы ?:

TextView myTextView = (TextView) findViewById(R.id.my_text_view); 
String myString = (String) myTextView.getText(); 

Я попытался это в моем коде, и она работала прекрасно, но все, кажется, использует первый способ .. Так что есть проблема, я не вижу с моим путем из Делать это? Или это просто другой способ сделать это, и если да, каковы преимущества обоих способов?

Спасибо за ваши ответы заранее :)

ответ

10

Так есть проблема, я не вижу, с моим способом сделать это?

Это будет врезаться с ClassCastException если CharSequence, что возвращается не String. Например, если вы используете Html.fromHtml() или другие средства для создания SpannedString, и используйте это в TextView, getText() не вернет String.

Смежные вопросы