那么为什么不总是调用 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/