我试图理解为什么在IntelliJ中突出显示智能演员表。例如这个字符串?聪明地转换为String并引起了很多关注:
我一般不是在寻找关于智能投射功能的解释,而是尝试理解为什么Jetbrains认为这需要开发人员注意。
答案 0 :(得分:0)
不是JetBrains,而是...因为智能强制转换导致的类型更改是代码中发生的非常不明显的事情,并且您自己没有任何真正的方法可以使它更加明显。因此,语法高亮会帮您做到这一点。
答案 1 :(得分:0)
从JetBrains的角度我不能说,但是我的看法是因为您首先将该变量声明为String?例如,现在人们可能希望保留它的类型,但是可以使用smart cast将类型更改为String,在这种情况下,它很简单,但是有时您可能需要更大的密封类层次结构,例如,不同的类具有不同的方法,这应该可以帮助您记住该类型与声明的类型不同,这也许是他们说过去为X类型的方法,但是现在在此上下文中为Y。