getText()。toString()vs(String)getText()

时间:2017-01-24 17:15:45

标签: java android

所以,我一直在研究getText()方法,并且我已经了解到它返回了CharSequence。 所以你不能这样做:

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

相反,必须通过执行以下操作将返回的CharSequence转换为String:

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

我已经在我的代码中尝试了这个并且它工作得非常好,但是每个人似乎都在使用第一种方式..所以有一个问题我没有看到我的方式吗?或者它只是一种不同的方式,如果是这样,两种方式的好处是什么?

提前感谢您的回答:)

1 个答案:

答案 0 :(得分:11)

  

那么有什么问题我没有看到我这样做的方式吗?

如果返回的ClassCastException不是CharSequence,则会因String而崩溃。例如,如果您使用Html.fromHtml()或其他方式创建SpannedString,并在TextView中使用该方法,则getText()将不会返回String。< / p>