java - 为什么不总是自动调用 toString()

标签 java android android-adapterview

那么为什么不总是调用 toString 呢?这是一个使用 Android API 的示例。

例如

@Override
public void onItemSelected(AdapterView<?> adapterView, View view,
        int position, long id) {
    Toast.makeText(this, adapterView, Toast.LENGTH_LONG).show();
}

不会编译。但是,如果我将其更改为

@Override
public void onItemSelected(AdapterView<?> adapterView, View view,
            int position, long id) {
    Toast.makeText(this, adapterView.toString(), Toast.LENGTH_LONG).show();
}

会的。实际区别是什么?

最佳答案

adapterView 不是 String

toString() 不会被编译器自动调用来执行强制转换——这会稍微破坏类型安全。只有当有 +"" 时,编译器才会自动调用 toString()。

关于java - 为什么不总是自动调用 toString(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4705624/

相关文章:

java - Apache Commons - CircularFifoBuffer BufferOverflowException

android - 在 Android OS 或 Java 中,字符序列和字符串有什么区别?

php - 我如何测试来自 php web 服务的 json 对象是否为空?

java - 如何在单个适配器中使用两个 Viewholder

android - 从 adapterview 启动一个新的 Intent 这么慢?

java - 忽略设置界限

java - 注释器依赖项 : UIMA Type Capabilities?

java - onClick 在 ListActivity 中使用 SimpleCursorAdapter

android - 如何从 android 的 setOnItemClickListener 中的 listview 获取对象?

java - 为什么在应用程序中使用 SQLContext 对 Hive 表执行 SQL 失败(但在 spark-shell 中的相同查询工作正常)?