【发布时间】:2021-07-15 00:37:56
【问题描述】:
向下转换过去看起来像这样:
((TextView)rootView.findViewById(R.id.fooText)).setText("Foo");
今天我注意到 Android Studio 使用了不同的语法:
rootView.<TextView>findViewById(R.id.fooText).setText("Foo");
这是替代旧语法的新语法吗?它有名字吗?它有什么优势?
【问题讨论】:
-
第二种语法不是强制转换。它在方法调用中使用通用参数。见stackoverflow.com/questions/3012781/…
-
第二种方法的优点与泛型与一般的强制转换几乎相同:您将进行编译时检查,告诉您您使用的泛型类型是否适用于该方法或如果该方法完全支持泛型。通过强制转换,您只会在运行时知道它是按预期工作还是可能导致异常
标签: java